芹菜非阻塞客户端


import proj.tasks
import time
import sys
import socket
import logging
import datetime
lat_to, ts = proj.tasks.timeme(time.time())          <---- blocking call
lat_from = time.time() - ts
print lat_to, lat_from

芹菜任务块,所以我不能利用很多工人。是否可以将其设置为非阻塞调用?

注意:我将龙卷风芹菜视为非阻塞芹菜客户端的选项,但我不确定我是否喜欢这种方法,因为我需要启动龙卷风芹菜网络服务器。

调用芹菜任务时,该方法同步执行。 任务队列的强大功能是将任务放在队列中,让工作人员异步完成工作。

您可以使用该任务执行此操作。delay方法。

我不确定延迟在内部做了什么,但它返回得非常快,并且当您调用它时,您的方法的工作实际上并没有完成,您的任务只是被放在工作队列中。

龙卷风芹菜在我这边工作正常,但默认情况下它会在回调之前等待任务的结果,

class GenAsyncHandler(web.RequestHandler):
    @asynchronous
    @gen.coroutine
    def get(self):
        response = yield gen.Task(tasks.sleep.apply_async, args=[3])
        self.write(str(response.result))
        self.finish()

如果你想有如下任务回调选项,你可以试试我的fork

  1. 任务发送后
  2. 任务发送和确认后
  3. 适合原汁原味的芹菜task.apply_async(( 首先获取 AsyncResult 的行为,然后AsyncResult.get(( 在龙卷风异步中获取实际任务结果时尚

相关内容

  • 没有找到相关文章