0
我写了一个应用程序,它从一个队列中取出一个作业并异步执行它。龙卷风异步作业龙卷风gen协同程序
def job(self):
print 'In job'
time.sleep(0.01)
@gen.coroutine
def start_jobs(self):
jobs = filter(lambda x: x['status'] == 0, self.queue)
for job in jobs:
yield self.job()
print 'exit from start job'
但是,这段代码不起作用。
输出:
在工作
在工作
在工作等
我怎么做是正确的?
我如何使它与期货合作,并且是否有一种更简单的方式与Tornado合作?
如果我想添加一些自定义函数而不是gen.sleep(random.random())会怎么样?我想添加使用job_id的函数并进行长时间的计算。 – cehmja
当然,只需使用“yield”调用该函数即可。查看我的文章emptysqua.re/blog/refactoring-tornado-coroutines/ –