问题标签 [twisted.internet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 装饰来自 twisted.internet.udp 的 Port 类
有没有可能从 twisted.internet.udp 装饰 Port 类?我想修改 Port 类的某些方法的行为,使其不时丢失或重复......或延迟数据包。我的目标是“模拟”一些扰动并测试我自己的协议(在 UDP 之上设计)是否正确运行。
任何的想法 ?
提前致谢
windows - iocpreactor 以扭曲的形式发布状态
我们在 Windows 2008 上的默认选择反应器存在问题。有一个替代反应器,iocpreactor,它看起来是 Windows 的理想解决方案。它在文档中被列为实验性的,并且“几乎准备就绪”。
这实际上意味着什么?到目前为止,我们已经毫无问题地对其进行了测试。是通用的吗?其他人可以推荐吗?
python - python twisted中的循环调用不起作用
我正在为我的实时项目使用 python twisted。
说明:我正在为我向远程机器发出请求的 url 拉取 html 页面。因此,我在我的数据库机器中维护调度程序,该调度程序向远程机器发送请求并通过发布 url 参数以扭曲的方式异步获取结果.
因此,在扭曲中,无论我们得到结果成功回调链还是错误回调链,我每两分钟在“LoopingCall 服务”中运行一次主方法。我将每 2 分钟启动一次主方法。
在这种情况下,当一个请求无法返回时,我会收到错误消息。其他远程机器仍然可用于该服务。所以,无论发生什么情况,我的主要方法都应该每两分钟调用一次。由于某些中断而没有发生错误。
解释:
如果客户反应不佳,有时我会收到错误消息。
即使应该再次调用 service_avail_check,因为远程机器已刷新,并且它可以在几分钟后再次准备好提供服务。所以,我经常调用它。
但是它没有被调用,而是被挂断了很长时间。
你能帮忙解决这个问题吗?
python - Twisted:使用 pyglet-twisted 时如何从 EndPoint 调用 Deferred
下面的代码取自 Twisted 关于 AMP 的文档(链接)。当回调被添加到 d 时,会自动添加一个“协议”参数,并且在调用 reactor.run() 时会自动运行延迟。
在我的代码中,一切都完全相同,除了我一直在使用 pyglet-twisted ( link ) 和 cocos2d,所以我不能调用 reactor.run() 因为反应器与应用程序同时启动。
如果我调用 reactor.run(),我会收到一条错误消息,指出反应器已经在运行。
如果我不这样做,deferred 似乎不会被调用。
我一直在尝试用 reactor.callLater、reactor.callWhenRunning 来调用它,但两者都需要一个参数。传递 None 不起作用。
所以我的问题是,我应该如何在不调用 reactor.run() 的情况下使其延迟运行。
谢谢!
python - 从 Web 界面控制基于 Twisted 的服务器?
我使用 Twisted 创建了一个具有自定义协议的服务器,并且我有客户端连接到特定端口(例如端口 1234)上的服务器。我正在寻找基于某种网页的服务器控制界面。到目前为止,我的研究表明 Nevow 是流行的选择,但我只需要一些非常简单的东西。
例如,每次浏览器访问端口 8080 上的 hello world 页面时,我都会向连接在 1234 上的客户端发送一条消息。
我对如何将这两个连接在一起有点困惑。我假设我需要从 HelloResource.render_GET 调用 Server.message ?
python - 延迟延迟列表达到最大递归深度
我有大量文档要插入到 MongoDB 中(可能 n > 100000)。我不想一次创建 100000 个延迟,但我不想按顺序执行和等待每个查询,因为我有一个到 MongoDB 的连接池并且我想充分利用它。所以我有一个生成器函数,它将产生延迟以供DeferredLazyList
.
这是链接延迟 upsert 的生成的代码,以及DeferredLazyList
.
DeferredLazyList
类似于DeferredList,但不是接受延迟列表等待它接受迭代器。延迟从迭代器中检索,同时只有count
延迟激活。这用于有效地批处理延迟,因为它们是在生成时创建的。
问题是当延迟从generate_update_deferreds()
他们.called
已经设置True
为导致DeferredLazyList
递归调用自身时产生。
正在发生的事情是:
在
DeferredLazyList.__init__()
中,self.__next_save_result()
称为count
次(比如 5)。每次调用都
self.__next_save_result()
消耗 1 个 deferred fromself.__iter
,并且它本身被添加为回调。因为产生的 deferred 已
.called
设置为True
,所以d.addCallbacks(self.__next_save_result, ...)
立即调用self.__next_save_result()
并且此循环继续,直到 aRuntimeError
被引发,因为已经达到递归深度。
我在达到递归限制之前打印了一个堆栈跟踪,以确认这是问题的原因:
任何帮助将不胜感激。顺便说一句,我正在运行带有 Twisted 12.1.0 的 Python 2.7.3,而 MongoDB 的内容实际上只与理解上下文相关。
我想要每个 deferred 的结果,但cooperate()
不返回这些结果,所以我在将它们交给CooperativeTask
s 之前为每个 deferred 添加了一个回调:
python - 当 TCP 服务器尝试以扭曲的方式接受来自客户端的连接时,会出现“未处理的错误”
上面的代码运行成功。但是当我尝试打开 TCP(telnet localhost 80)时。
发生错误:
如果有人知道解决方案,请帮助我。我只是新来的 twisted 。
python - 当客户端尝试以扭曲的方式与聊天服务器通信时,出现未处理的错误和连接丢失
上面的代码运行成功...但是当我将客户端(通过键入 telnet localhost 80)连接到此聊天服务器并尝试写入消息时,连接丢失并出现以下错误:
我哪里错了?
python - 将 Python Raspberry Pi 应用程序移植到 Twisted - 如何处理轮询硬件的后台线程
我创建了一个小型设备,它使用小型 Raspberry Pi 单板计算机,让我可以远程分配零食给我的猫,并通过网络摄像头监控他和周围环境。\
该软件由一个 Python 模块组成,该模块托管一个网站(允许远程控制设备),一个管理硬件并运行简单状态机的“线程”,以及一个通过网络摄像头捕获图片的“线程”它运行运动检测算法以将捕获限制在猫在附近的时间。该网站拥有一个 HTML 页面,其中包含一些使用 jQuery 对服务器进行 Ajax 回调的 Javascript。
该软件一切正常,但我发现该网站有时在初始加载时返回页面非常慢。由于 GIL 和 Python 简单的 http 服务器类设计,我认为问题在于 Python 的一般单线程性质。
我有兴趣将应用程序移至 Twisted,但我不确定如何移植处理相机和硬件状态机的两个线程。两个线程都运行一个循环,有效地轮询,循环的每次迭代之间有一个小的延迟。
谢谢