在我的龙卷风服务器中,我有一个定期运行的后台进程。我按照建议将其实现为永无止境的循环:
@tornado.gen.coroutine
def background_loop():
while True:
do_something()
yield tornado.gen.sleep(60)
(另外我打电话)
ioloop.spawn_callback(background_loop)
现在我的问题 - 有时我想触发后台循环的立即运行。问题是,我不能将其中两个并行运行,因为代码假定一次只运行一个循环。
我想知道,有没有办法“唤醒”我的背景循环?
我当前的hack是我实现了一些锁定,启动第二次运行一次迭代的background_loop会窃取锁定,如果无法获取锁定,主循环将跳过迭代。感觉它只是唤醒主要方法会更简单...
THX!