【问题标题】:How to run periodic celery task manually from terminal in pyramid?如何从金字塔的终端手动运行定期芹菜任务?
【发布时间】:2013-12-01 18:45:24
【问题描述】:

我正在做一个“金字塔(塔)”项目。我已将 celery 配置为定期运行一些任务,并且工作正常。但我正在努力解决如何从终端手动运行任何任务。我的项目的目录结构是

/pyramid/
    celeryconfig.py
    development.ini
    setup.py
    /views/celerytasks/
        __init.py__
        mytask1.py
        mytask2.py

这里的 'celeryconfig.py' 包含有关 celery 的所有设置,例如 'CELERY_IMPORTS'、'CELERY_QUEUES' 和 'CELERYBEAT_SCHEDULE'。我在“mytask1.py”文件中有一些任务,它曾经每天运行一次。但是我怎样才能从 pshell 手动运行它呢?我正在使用 ubuntu 10.04。

谁能告诉我?

解决方案:

1- Go to the application root folder, in my case '/pyramid/'.
2- Run 'pshell development.ini'
3- >>> from views.celerytasks.mytask1 import CeleryTask1
4- >>> celeryTask1 = CeleryTask1()    // Create instance of imported class
5- >>> celeryTask1.delay()     // Finally here the task will run

【问题讨论】:

  • 终于找到了解决方案。只需在问题本身中查看即可。

标签: python-2.7 celery pyramid ubuntu-10.04


【解决方案1】:

我想应该是这样的

from views.celerytasks.mytask1 import my_mega_task_number_one
my_mega_task_number_one.delay()

(需要运行一个单独的工作进程)

【讨论】:

  • “需要运行单独的工作进程”是什么意思?你能具体说明一下吗?
  • 我不确定您的系统是如何设置的,但是使用 Celery,您通常有一个调度任务的进程(您的网络服务器或 pshell 或控制台脚本),以及一个或多个“工作”进程,可能在不同的机器上运行,这些机器从队列中获取计划任务并实际执行它们。有关详细信息,请参阅 Celery 文档。
猜你喜欢
  • 1970-01-01
  • 2015-10-12
  • 2017-04-11
  • 1970-01-01
  • 2019-02-26
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多