2013-04-05 110 views
2

执行我能执行我的任务使用Django的芹菜任务不.delay

scrape_adhoc_reporting([store], [types], inventory) 

这是一个问题,但没有问题,因为这个任务可以很容易地需要一个小时。所以我尝试使任务异步。我尝试了以下两种方法:

scrape_adhoc_reporting.apply_async(args=[[store], [types], inventory]) 
    scrape_adhoc_reporting.delay([store], [types], inventory) 

这两种方法都不起作用。该视图只是应该重定向,但该任务永远不会执行。错误日志中没有错误。任何有关我在做什么错误的见解?

编辑:环顾了一下后,我看到有人在讨论注册任务。这是我需要做的事吗?

+0

注册任务意味着当芹菜工人启动时,它应该知道它可以执行的任务列表。我假设你使用django-celery,所以当你的worker启动时,它会在每个app目录的tasks.py文件中搜索任务(用@ @ task或者@ @ periodic_task'装饰的函数)。如果您的任务在其他地方定义,则不会执行 – Igor 2013-04-05 14:19:10

回答

1

如果您希望远程运行它,则需要一个工作进程在加载该任务时运行,并且配置一个路由系统以获取调用者和worker之间发送的任务请求。

查看workerstasks的芹菜文档。

您正在运行的代码只是在本地执行任务。

3

我跑了同样的问题,我刚解决它。马特是正确的:这是由于非工作人员。

我在Windows上使用Django(1.5),Celery(3.0+)和Django-Celery。为了获得Celery Beat的工作,我遵循本教程:http://mrtn.me/blog/2012/07/04/django-on-windows-run-celery-as-a-windows-service/与Windows一样,Beat只能作为服务启动。

但是,就你而言,我的任务已启动但未执行。这来自打包版本django-windows-tools(来自pip)中的一个bug。

我通过从GitHub下载最新版本的django-windows-tools(https://github.com/antoinemartin/django-windows-tools)解决了这个问题。

+0

谢谢。我一直在试图理解为什么Windows服务不起作用。你的评论帮了我很多。 – ratna 2013-10-04 15:51:44