Celery 4.0中的定期任务

时间:2016-11-27 19:10:22

标签: python celery

据我所知,自Celery 3.1装饰器woocommerce_payment_complete_order_status被删除。

所以我试图从芹菜docs运行一个例子,并且无法意识到,我做错了什么。

我在add_action( 'woocommerce_order_status_completed', 'your_func', 10, 1 ); function your_func($order_id) { $order = new WC_Order( $order_id ); /* Do Something with order ID or somthing related to it*/ } 中有以下代码:

@periodic_task

当我跑:task_planner.py时,我只收到以下内容:from celery import Celery from kombu import Queue, Exchange class Config(object): CELERY_QUEUES = ( Queue( 'try', exchange=Exchange('try'), routing_key='try', ), ) celery = Celery('tasks', backend='redis://', broker='redis://localhost:6379/0') celery.config_from_object(Config) celery.conf.beat_schedule = { 'planner': { 'task': 'some_task', 'schedule': 5.0, }, } @celery.task(queue='try') def some_task(): print('Hooray') 每5秒。

但我期待输出' Hooray'

那么,我错过了什么?

1 个答案:

答案 0 :(得分:4)

找到了解决方案。 我有任务:

@celery.task(queue='try')
def some_task():
    print('Hooray')

我打印了它的名字:

print(some_task)

得到以下信息:

<@task: task_planner.some_task of tasks:0x7fceaaf5b9e8>

所以我只是在这里将任务名称从some_task更改为task_planner.some_task

celery.conf.beat_schedule = {
    'planner': {
        'task': 'task_planner.some_task',
        'schedule': 5.0,
    },
}

它有效!

[2016-11-29 10:09:57,697: WARNING/PoolWorker-3] Hooray

注意即可。你应该与工人一起打败(如果在与节拍相同的模块中的任务)和loglevel&#39; info&#39;为了看到结果:

celery -A task_planner worker -B -l info