如何运行所有芹菜任务没有工人,我的意思是直接打电话? 我可以使用TaskName.run()调用任务,但是我想在配置中编写它,所以如何使它成为可能?没有工人运行芹菜任务
2
A
回答
4
只需将CELERY_ALWAYS_EAGER设置为true,这将强制芹菜不排队任务并在当前进程中同步运行它们。
如果你希望能够做到这一点每个特定的任务,你可以用运行它们适用()或的run()如你所提到的,而不是用apply_async()或延迟运行它们()。
所以TL;博士:
CELERY_ALWAYS_EAGER = True
# The following two would do and act the same, processing synchronously
my_task.run()
my_task.delay()
但
CELERY_ALWAYS_EAGER = False
# These two won't be the same anymore.
my_task.run() # Runs synchronously
my_task.delay() # Passed to the queue and runs Asynchronously, in another process
0
如果我理解你是对的,你想同步调用任务。
只要调用方法为正常:
TaskName()
你只需要使用delay
当你想将它传送给工人。
相关问题
- 1. (芹菜):在特定的工作人员中运行任务?
- 2. 两个项目工人没有收到芹菜任务
- 3. 芹菜工人不重试任务()
- 4. 在芹菜工人运行测试
- 5. Django芹菜周期性任务没有运行(Heroku)?
- 6. 芹菜周期性任务没有得到执行任务.py
- 7. 芹菜任务不工作
- 8. 执行其他芹菜任务不工作的芹菜周期性任务
- 9. 芹菜拍没有发现任务
- 10. 运行的systemd服务强制停止芹菜工人
- 11. 在芹菜中,当工人即将关闭时如何中止运行任务?
- 12. 运行更多任务的芹菜任务
- 13. 运行芹菜任务时无法导入任务
- 14. 芹菜链任务
- 15. 安装了芹菜,但它没有执行任务
- 16. 芹菜并行任务错误'没有结果后端配置'
- 17. 运行2名芹菜工人在一台服务器有两个Django应用
- 18. 当芹菜在supervisord下运行时,芹菜任务无法写入主目录
- 19. Python芹菜任务工作流程excution
- 20. 在任务内部访问芹菜工人实例
- 21. 限制的任务数排队的芹菜工人
- 22. 芹菜 - 工作人员不接受新任务
- 23. 一些芹菜任务工作,其他人是NotRegistered
- 24. 芹菜工人多次接收同一个id的任务
- 25. 芹菜:CELERYD_CONCURRENCY和工人
- 26. 芹菜检查工作人员的任务和检索任务文档
- 27. 由芹菜工作人员执行任意函数
- 28. 芹菜定期任务不执行
- 29. 芹菜任务不会执行
- 30. Rake任务没有从工作人员内部运行
确定,但你如何得到返回值?这仍然是由芹菜 – kentor
包裹在其他东西。你仍然可以总是调用一个方法指定为一个任务,你可以调用任何其他方法在Python中。 Celery只是将调用添加到外部进程可以执行的队列中。如果你需要在芹菜内外调用这个任务(并且在外部,我的意思是同步执行一个脚本,而不是轮询响应或类似的东西,或者使用任何异步工具),然后将其称为正常。没有什么奇特的需要。它仍然是一个可以返回值的方法,等等。 –