【问题标题】:How can I manually trigger/start celery tasks in a django application?如何在 django 应用程序中手动触发/启动 celery 任务?
【发布时间】:2015-05-21 21:06:49
【问题描述】:

我有一个 django 应用程序运行一些计划的(定期/crontab)芹菜任务。我还安装了 django-celery 以便将结果存储在 django 数据库后端。

现在在 django admin 中,我可以看到 celery 模型,但无法手动控制任务,而我实际上需要它来进行调试。

目前我已经制作了一些执行apply_async 的视图,但肯定有更简单的方法可以做到这一点吗?

【问题讨论】:

  • 您是否尝试过触发TaskClassrun() 方法而不是apply_async 方法?
  • 为什么不使用shell
  • 像其他用户指出的那样运行 shell。 python manage.py shell 让你可以随意触发 celery 任务。
  • 你也可以像普通的函数一样从shell或者unittests调用任务,不需要worker,它们就像普通的python函数一样在当前进程中执行。
  • 使用提示,我设法使用 shell 触发任务。我发布了相关命令,以便其他开发人员可以从中受益。 $ sudo -H -u www-data bash -c "p​​ython 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()

标签: python django celery


【解决方案1】:

我想只有一种方法可以调试 celery。使用celery.contrib.rdb。您可以在页面http://docs.celeryproject.org/en/latest/userguide/debugging.html阅读更多内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2013-12-16
    • 2012-08-09
    • 1970-01-01
    相关资源
    最近更新 更多