首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在shell中手动运行芹菜周期任务?

如何在shell中手动运行芹菜周期任务?
EN

Stack Overflow用户
提问于 2012-10-16 00:34:54
回答 3查看 53.7K关注 0票数 85

我用芹菜和姜果芹菜。我已经定义了一个我想要测试的周期性任务。是否可以从shell手动运行定期任务,以便查看控制台输出?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-16 00:40:29

您是否尝试过仅从Django shell运行任务?您可以使用任务的.apply方法来确保该任务在本地快速运行。

假设任务在Django应用程序myapp中的tasks子模块中称为my_task

代码语言:javascript
运行
复制
$ python manage.py shell
>>> from myapp.tasks import my_task
>>> eager_result = my_task.apply()

结果实例与通常的AsyncResult类型具有相同的接口,只是结果总是在本地急切地求值,并且.apply()方法将阻塞,直到任务运行完成。

票数 120
EN

Stack Overflow用户

发布于 2018-10-20 12:49:15

如果您的意思是在条件不满足时触发任务,例如周期时间不满足。你可以通过两个步骤来完成。

1.获取您的任务id。

您可以通过键入命令来完成此操作。

代码语言:javascript
运行
复制
celery inspect registered

您将看到类似于app.tasks.update_something的内容。如果没有,很可能是celery没有启动。只需运行它。

使用 celery call运行任务2.

代码语言:javascript
运行
复制
celery call app.tasks.update_something

要了解更多详细信息,只需键入

代码语言:javascript
运行
复制
celery --help
celery inspect --help
celery call --help
票数 27
EN

Stack Overflow用户

发布于 2012-10-16 00:42:42

我认为您需要打开两个shell :一个用于执行Python/Django shell中的任务,另一个用于运行celery worker (python manage.py celery worker)。正如前面的回答所说,您可以使用apply()apply_async()运行任务

我已经对答案进行了编辑,所以您不会使用弃用的命令。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12900023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档