【问题标题】:How to process unfinished tasks in django celery如何在 django celery 中处理未完成的任务
【发布时间】:2013-09-09 02:36:06
【问题描述】:

我正在开发一个项目,其中 zip/gzip 文件由用户上传,然后使用 Celery 解压缩和处理。该网站基于 Django。 现在我面临的问题是当 Celery 没有运行时上传的文件很少。无论如何,我可以为这些未处理的文件重新运行 celery 吗?如果是,那怎么办?

谢谢。

【问题讨论】:

  • 我认为 celery 会自动启动在 celery 未运行时启动的任务。运行./manage.py celeryd -lDEBUG,在终端中查看。
  • 嗯,输出了很多行。我实际上可以用它做什么?
  • 它在调试模式下运行 celery。您应该会看到类似Task Accepted 的内容,这意味着您的任务已经开始。
  • 实际上,RabbitMQ 是在生产服务器上使用的。而且我认为上传某些文件时该服务未激活。现在的问题是,虽然文件的相关数据(如文件名、文件类型等)已发布在数据库中,但文件并未解压缩和处理。你能建议我解决这个问题吗?
  • 嗯,在这种情况下,您必须从 Django shell 手动启动这些任务。您需要跟踪任务的 ID 并手动运行它。这两个链接将对您有所帮助:docs.celeryproject.org/en/latest/faq.htmlstackoverflow.com/questions/12900023/…

标签: django celery django-celery


【解决方案1】:

您必须手动跟踪这些任务并从Django shell 开始。 celery 创建了很多表来跟踪这些任务。我已经有一段时间没有使用芹菜了,但我的猜测仍然是:

djcelery_crontabschedule

djcelery_taskstate

celery 文档中也可能有关于此的内容:http://docs.celeryproject.org/en/2.3/getting-started/first-steps-with-celery.html

您也可以在 celery mailing list 上询问您的问题。

【讨论】:

    猜你喜欢
    • 2018-06-03
    • 1970-01-01
    • 2019-11-05
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多