问题标签 [twisted]

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.

0 投票
1 回答
421 浏览

python - 如何在twisted.web(或twisted.web2)中添加钩子?

如何在处理 twisted.web 上的请求之前和之后添加一个钩子(twisted.web2 也可以)?相当于 webpy 的:

谢谢!

0 投票
1 回答
2000 浏览

python - CherryPy 干扰了 Windows 上的 Twisted 关闭

我有一个运行 Twisted 的应用程序,它reactor.run()在启动其他一些线程(包括 CherryPy Web 服务器)后在我的主线程中启动反应器。这是一个程序,当在 Linux 上按下 Ctrl+C 而不是在 Windows 上时,它会干净地关闭:

我相信 CherryPy 是这里的罪魁祸首,因为这是我在没有 CherryPy 的情况下编写的另一个程序,当按下 Ctrl+C 时,它会在 Linux 和 Windows 上完全关闭:

有谁知道问题是什么?这是我的难题:

  • 在 Linux 上一切正常
  • 在 Windows 上,我可以reactor.callFromThread在 CherryPy 未运行时从信号处理程序调用函数
  • 当 CherryPy 运行时,我从信号处理程序调用使用reactor.callFromThread的任何函数都不会执行(我已经验证信号处理程序本身确实被调用)

我能做些什么呢?如何在运行 CherryPy 时从信号处理程序关闭 Windows 上的 Twisted?这是一个错误,还是我只是错过了这两个项目中任何一个文档的一些重要部分?

0 投票
3 回答
1283 浏览

python - Twisted 有时会抛出(似乎不完整)“超出最大递归深度”RuntimeError

因为 TwistedgetPage函数不允许我访问标题,所以我必须编写自己的getPageWithHeaders函数。

这与普通函数完全相同getPage,只是我添加了 try/except 块并返回工厂对象而不是返回 factory.deferred

出于某种原因,我有时会在此处收到超出最大递归深度的错误。它在 700 次中始终发生几次,通常每次都在不同的站点上。任何人都可以对此有所了解吗?我不清楚为什么或如何会发生这种情况,而且 Twisted 代码库足够大,我什至不知道去哪里找。

编辑:这是我得到的回溯,这似乎很不完整:

这是整个回溯,显然还不足以超过我们的最大递归深度。为了获得完整的堆栈,我还需要做些什么吗?我以前从未遇到过这个问题;通常当我做类似的事情时

然后我得到了你所期望的那种“超出最大递归深度”的堆栈,其中有大量的引用f()

0 投票
3 回答
232 浏览

python - python程序选择

我的程序是 ICAPServer(与 httpserver 类似),它的主要工作是从客户端接收数据并将数据保存到 DB。

有两个主要步骤和两个线程:

  1. ICAPServer 从客户端接收数据,将数据放入队列(50kb <1ms);
  2. 另一个线程从队列中弹出数据,并将它们写入 DB SO,如果第二步太慢,队列将用这些数据填满内存。

想问问大家有没有什么建议...

0 投票
2 回答
831 浏览

python - 运行扭曲的应用程序时出错

我正在尝试运行 metajack 博客中提到的一个简单的扭曲应用程序 echo bot,一切看起来都可以正常加载,但最后我得到一个错误:

关于可能导致这种情况的任何想法?

我根本没有玩过 wokkel/twisted/python,也不知道从哪里开始看。

我尝试了另一个 wokkel/twisted 应用程序并得到了同样的错误,这毫无价值。

0 投票
3 回答
8050 浏览

python - 如何更新扭曲的框架

我可以从最新的 8.2(几乎 1200 行代码)扭曲中看到我遗漏了一些东西: http ://twistedmatrix.com/trac/browser/trunk/twisted/words/protocols/jabber/xmlstream.py

我的副本(3 年前的 697 行)位于:/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/twisted/words/protocols/jabber/xmlstream.py

我运行了在网站上找到的 mac 安装程序,一切看起来都安装得很好,但显然我缺少了一些东西:http: //twistedmatrix.com/trac/wiki/Downloads

有人可以告诉我如何在我的 Mac 上正确更新 twisted 吗?

0 投票
2 回答
1751 浏览

python - win32api.dll 不会安装

我正在尝试在 Windows XP 虚拟机上启动 Buildbot Buildslave:

谷歌告诉我 win32api 是 win32api.dll。我从 www.dll-files.com 下载了该文件,并按照该网站 ( http://www.dll-files.com/unzip.php ) 上的指南进行操作。当我尝试运行 regvr32 win32api.dll 时,它告诉我找不到指定的模块。

tl;dr - 我在哪里放置 win32api.dll 以便 Windows 安装它?我是否尝试使用错误的文件?(使用python 2.6版)

0 投票
5 回答
3629 浏览

python - 快速的python/jython IPC?

我要做的就是通过套接字进行一些 RPC 调用。我有一台运行 jython 2.5 的后端服务器。我需要从在 CPython 上运行 Django 的前端服务器进行一些调用。我一直在努力争取任何形式的 IPC。

我尝试过的事情清单:

  • Apache Thrift没有任何实际版本,只有快照。我想用一些稳定的东西。
  • JSON-RPC很有趣,它应该能够在套接字上运行,但实际上大多数实现似乎只能在 HTTP 上运行。HTTP 开销正是我想要避免的。
  • Protocol Buffers实际上只是一个序列化协议。从我收集的内容来看,protobuf 为 RPC 提供了接口生成,但它只是接口。实际上编写所有连接代码取决于用户。如果我将无法使用套接字,我将只使用 JSON 进行序列化。它更简单,更快
  • Pyro无法将 Jython 作为服务器正常工作。某种套接字超时问题。我已经向邮件列表发送了一条消息。
  • pysage是的,用于消息传递!只有它需要 python 2.6 或处理模块(已编译扩展)。Jython 是 2.5 版,不允许编译扩展。
  • Candygram是 pysage 的一个有趣的替代品,但据我所知,它没有维护。我什至没有用 Jython 尝试过。有什么经验吗?
  • Twisted Perspective Broker Twisted 不适用于 Jython。

我知道用 XML-RPC 做这件事会很容易,这让我更加暴躁。我想避免 HTTP 的开销,但同时我真的不想用套接字来实现我自己的协议。如果我这样做,我会做错。

有任何想法吗?我可能会哭大约 20 分钟,然后就使用 XML-RPC。

0 投票
1 回答
2982 浏览

python - 如何增加 Twisted 的连接池大小?

我使用 Twisted 8.1.0 作为套接字服务器引擎。反应堆-epoll。数据库服务器是 MySQL 5.0.67。操作系统 - Ubuntu Linux 8.10 32 位

/etc/mysql/my.cnf

在源代码中:

SHOW PROCESSLIST但实际上,当应用程序在重负载下运行时,我只能看到 200 个(或更少)打开的连接 ( )。这对我的应用程序来说还不够:(

正如我所见,这是线程池的限制。有任何想法吗?

0 投票
2 回答
567 浏览

python - 模板+脚本反向代理?

思考一个想法,想要得到反馈/建议:

在 url 重写和 nginx 方面取得了巨大成功,我现在正在考虑一个功能更强大的反向代理/路由器,它可以执行以下操作:

  • 根据正则表达式匹配将请求映射到处理程序(ala Django)
  • 某些请求将简单地路由到后端服务器 - 例如。静态媒体、memcached 等
  • 其他请求将呈现从多个后端服务器提取数据的模板

例如,一个模板可以包括:

反向代理将向 someserver/somepage 和 otherserver/otherpage 发出 http 请求,并将结果拉入模板。

问题:

  • 这个想法有意义还是坏主意?
  • 是否有一个现有的包可以实现这样的东西?
  • 现有的服务器+脚本如何实现这一点 - 例如。lighttpd+lua, nginx+??
  • nginx+SSI 怎么样?看起来很能干,如果您有经验/建议,请发表评论。
  • 脚本语言+eventlet这样的东西怎么样?
  • 扭曲?

我的偏好是用于脚本和 jinja/django 样式模板的 python,但我对替代方案持开放态度。