我正在运行 pythonapscheduler
并定期希望对一些 http 资源进行 POST 处理,这将涉及使用 tornadoAsyncHttpClient
作为计划作业。每个工作都会做几个 POST。当每个 http 请求响应时,就会调用一个回调(我认为 Tornado 使用 afuture
来完成此操作)。
我在这里关心线程安全,因为Apscheduler
在各种线程中运行作业。我还没有找到一个解释清楚的例子,说明在这种情况下如何最好地跨多个线程使用龙卷风。
我怎样才能以这种方式最好地使用apscheduler
with tornado
?
具体问题:
使用哪个龙卷风 ioloop?文档说
AsyncHTTPClient
“像魔术一样工作”。好吧,魔法吓到我了。我需要AsyncHTTPClient
在当前线程中使用还是可以使用主线程(可以指定)?关于我使用的 ioloop,我的回调是否存在线程安全问题?
我不清楚当一个线程完成时会发生什么,但仍有一个待处理的回调/未来需要被调用。这里有问题吗?
由于 apscheduler 是作为进程内线程运行的,而 python 具有 GIL,那么从主线程拥有一个 IOLoop 与来自不同线程的多个循环(就性能而言)相反吗?