我正在尝试让发件人过滤器正常工作。
@celery.task
def run_timer(crawl_start_time):
return crawl_start_time
@task_success.connect
def run_timer_success_handler(sender, result, **kwargs):
print '##################################'
print 'in run_timer_success_handler'上面的方法运行良好,但如果我尝试按发件人进行过滤,它永远不会起作用:
@task_success.connect(sender='tasks.run_timer')
def run_timer_success_handler(sender, result, **kwargs):
print '##################################'
print 'in run_timer_success_handler'我也尝试过:@task_success.connect(sender=globals()'run_timer') (@task_success.connect=‘run_timer’) @task_success.connect(sender=run_timer)
它们都不起作用。
如何有效地使用发件人筛选器来确保为run_timer任务而不是其他任务调用by callback。
发布于 2016-04-19 10:35:38
http://docs.celeryproject.org/en/latest/userguide/signals.html#task-success ...发送者是执行的任务对象。(与after_task_publish.sender不同) ...所以,你应该
@task_success.connect(sender=run_timer)
def ...这对我很管用。祝好运。
https://stackoverflow.com/questions/17757306
复制相似问题