【发布时间】:2013-05-05 21:03:34
【问题描述】:
我正在运行 python 的 apscheduler 并定期想要做一些工作 POST 到一些 http 资源,这将涉及使用 tornado 的 AsyncHttpClient 作为计划的工作。每个工作都会做几个 POST。当每个 http 请求响应时,就会调用一个回调(我认为 Tornado 使用 future 来完成此操作)。
我在这里关心线程安全,因为Apscheduler 在各种线程中运行作业。我还没有找到一个解释清楚的例子,说明在这种情况下如何最好地跨多个线程使用龙卷风。
我怎样才能以这种方式最好地使用apscheduler 和tornado?
具体问题:
要使用哪个龙卷风 ioloop?文档说
AsyncHTTPClient“像魔术一样工作”。好吧,魔法吓到我了。我需要在当前线程中使用AsyncHTTPClient还是可以使用主线程(可以指定)?对于我使用的 ioloop,我的回调是否存在线程安全问题?
我不清楚当线程完成但仍有待调用的回调/未来需要调用时会发生什么。这里有问题吗?
由于 apscheduler 作为进程内线程运行,而 python 具有 GIL,那么从主线程拥有一个 IOLoop 是否几乎相同 - 而不是来自不同线程的多个循环(相对于性能)?
【问题讨论】:
-
嘿,我的回答对您有任何帮助吗?如果您需要更多相关信息,能否发表评论?
标签: python multithreading concurrency tornado apscheduler