【发布时间】:2015-05-21 21:06:49
【问题描述】:
我有一个 django 应用程序运行一些计划的(定期/crontab)芹菜任务。我还安装了 django-celery 以便将结果存储在 django 数据库后端。
现在在 django admin 中,我可以看到 celery 模型,但无法手动控制任务,而我实际上需要它来进行调试。
目前我已经制作了一些执行apply_async 的视图,但肯定有更简单的方法可以做到这一点吗?
【问题讨论】:
-
您是否尝试过触发
TaskClass的run()方法而不是apply_async方法? -
为什么不使用
shell? -
像其他用户指出的那样运行 shell。 python manage.py shell 让你可以随意触发 celery 任务。
-
你也可以像普通的函数一样从shell或者unittests调用任务,不需要worker,它们就像普通的python函数一样在当前进程中执行。
-
使用提示,我设法使用 shell 触发任务。我发布了相关命令,以便其他开发人员可以从中受益。 $ sudo -H -u www-data bash -c "python manage.py shell" Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 输入 "help", "版权”、“学分”或“许可”以获取更多信息。 (InteractiveConsole) >>> from <...>.tasks import * >>> task_test.run()