问题标签 [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.
scrapy - Scrapy (1.0) - 未收到信号
我想做的是在打开一个scrapy蜘蛛时触发一个函数(abc),这应该由scrapys'信号'触发。
(稍后我想将其更改为“关闭”以将每个蜘蛛的统计信息保存到数据库中以进行日常监控。)所以现在我尝试了这个简单的解决方案只是为了打印一些东西,我希望在控制台中看到什么当我在打开蜘蛛的那一刻运行爬虫进程时。
发生的情况是爬虫运行良好,但在蜘蛛打开时不打印“abc”的输出,这应该触发输出。最后,我发布了在控制台中看到的内容,这只是蜘蛛运行得非常好。
为什么在日志中看到“INFO:Spider 打开”时(或根本没有)的信号没有触发 abc 函数?
MyCrawlerProcess.py:
控制台输出:
python - Python SSH Server(twisted.conch) 获取用户的命令
我愿意在我的服务器上部署一个 SSH 守护程序,我可以知道执行了哪些命令。但我不知道如何获取用户的命令。我实现了一个基于twisted.conch.ssh.session的SSH服务器。我可以在 SSHSessionProcessProtocol 的 outReceived 中得到所有的标准输出,但是很难准确地从标准输出中提取用户的命令,因为这在很大程度上依赖于 Linux($PS1) 的提示。
python - Python扭曲的内存泄漏问题
我从我的 render_POST 创建了上面的类并返回了它的实例的 run_it 方法
但是,当 self.sql 查询返回内存使用量达到 500mb 的大量数据时,我注意到内存永远不会返回给操作系统,进程只会保留它,直到我重新启动应用程序。我什至在 onResult 里面做了一个 gc.collect() 没有运气。
为什么会这样?
注意:我必须从 onResult 中删除其他代码,这样我才能缩小范围,因为我真的没有使用传递给 onResult 的“数据”。
twisted - 在twisted Site中构建协议机制
我试图了解如何以及何时为站点工厂中的 http 请求创建协议。虽然我对工厂和协议的工作有基本的了解,但我的困惑是因为我看到为来自浏览器的单个请求创建了多个协议。以下是示例代码和输出。
通过 chrome从http://localhost:8888/的单个请求记录
以下是我的查询
1) 如上所示,为来自 3 个不同端口的请求创建了 3 个不同的协议。这是预期的行为吗?每个请求不应该有一个协议吗?
2)如果我必须在请求过期或协议关闭时采取一些措施,我应该研究哪个协议?
twisted - 用于 Twisted 中的 Protocol.dataReceived 的 inlineCallbacks
我似乎误解了dataReceived
and的规则inlineCallbacks
。
更具体地说,当我这样做时:
我的协议确实发送了数据,但是当我这样做时:
我什么也没收到,然后连接就关闭了。defer.returnValue 在这里也没有帮助,行为是相似的。
请解释。
python - Autobahn Asyncio ReconnectingClientFactory
我想ReconnectingClientFactory
用 asyncio 做一个。特别是处理客户端启动时服务器不可用的情况,在这种情况下ReconnectingClientFactory
将继续尝试。那是asyncio.events.create_connection
不做的事情。
具体来说:
EchoClient示例会很好。关键是如何建立联系。
在扭曲版本的情况下ReconnectingClientFactory
。
VS
或与asycnio版本类似。
问题在于,在 asyncio 版本中,asyncio.events.create_connection
如果服务器不可用,则建立连接只会失败。
我怎样才能调和两者?
非常感谢
python - 扭曲的 url 动作路由
例如,如果我有这个简单的 TCP 服务器:
例如,使用具有 render_GET 和 render_POST 方法的 SomeResource。然后我知道我可以发送一个 POST/GET 到主机名:8080/test
但现在我想让它更复杂,我想做一些类似 hostname:8080/test/status
可以在 SomeResource() 中将其定义为方法吗?还是我必须为每个不同的 url 定义一个新资源?
python - 防止主线程完成执行的最佳方法
一个由某个作业监视器完全调度和监视的应用程序实现了一个 JMSMessageListener ......现在防止这个主线程(它在 JMS 队列上注册自己)不完成它的执行的最佳方法是什么。否则,作业监视器会将此作业标记为已完成,而消息事件则应该改为工作。
有2种方式-
第一种方式
导入计时器
其他一些任务...消息的 JMS 队列注册
timer.sleep(_LONG_TIME) # 这将阻止它离开执行
第二种方式——
来自twisted.internet 进口反应堆
其他一些任务...消息的 JMS 队列注册'''
reactor.run() # 这会将执行控制发送到反应堆
所以现在我明白了……让线程休眠不会影响 CPU和机器资源。虽然我不确定发生了什么,但一旦控制权进入反应堆?
python - 将 Twisted 请求内容管道传输到进程的 STDIN
我正在寻找将 HTTP POST 或 PUT 的内容通过管道传输到进程的 STDIN。我正在使用 Klein 库并具有以下代码:
我正在努力解决的问题是我将哪个部分Request
传递给 my CurlProcProtocol
,然后又如何将它传递给self.transport
?
openssl - 扭曲和“'模块'对象没有属性'SSL_library_init'”
我尝试运行以下命令:
但我得到了这个错误:
我也有这些错误。
有人可以帮我解决这个问题吗?