【发布时间】:2023-03-26 09:19:01
【问题描述】:
我有一个对服务器的 API 调用,我正在使用 celery 进行一些处理。 celery 的输出被传回给客户端。
我用过
som = task_async_get_cached_session.delay('session_123')
print 'before'
result = som.get(timeout=1)
print 'after'
我看了celery -l INFO,任务成功了
succeeded in 0.024465521s: {data: {session_123: something}}
但是我的客户没有得到回复,我设置了超时,现在我收到了The operation timed out. (<class 'celery.exceptions.TimeoutError'>)
当我查看日志跟踪时,只打印了before。我的问题是,当您希望将 celery 任务生成的结果发送给客户端时,如何在没有 get() 的情况下使用 celery?
我知道get() 会将我的 API 调用转换为同步调用,但我有什么替代方法?芹菜的真正用途是什么?有没有其他方法可以将我的 API 更改为异步行为?
【问题讨论】:
标签: python django asynchronous celery