【发布时间】:2013-04-05 12:20:15
【问题描述】:
我可以使用
执行我的任务没问题 scrape_adhoc_reporting([store], [types], inventory)
这是一个问题,因为这项任务很容易需要一个小时。所以我尝试使任务异步。我尝试了以下两种方法:
scrape_adhoc_reporting.apply_async(args=[[store], [types], inventory])
scrape_adhoc_reporting.delay([store], [types], inventory)
这两种方法都不起作用。视图只是按原样重定向,但任务永远不会被执行。错误日志中没有错误。关于我做错了什么的任何见解?
编辑:再环顾四周后,我看到人们在谈论注册任务。这是我需要做的事情吗?
【问题讨论】:
-
注册一个任务意味着当 celery worker 启动时它应该知道它可以执行的任务列表。我假设您使用 django-celery,因此当您的工作人员启动时,它将在每个应用程序目录的
tasks.py文件中搜索任务(用@task或@periodic_task装饰的函数)。如果您的任务在其他地方定义,它将不会被执行