据我所知,自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'
那么,我错过了什么?
答案 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