我可以使用
执行我的任务没问题 scrape_adhoc_reporting([store], [types], inventory)
这是一个问题,因为这个任务很容易花费一个小时。所以我尝试让任务异步。我尝试了以下两种方法:
scrape_adhoc_reporting.apply_async(args=[[store], [types], inventory])
scrape_adhoc_reporting.delay([store], [types], inventory)
这两种方法都不起作用。视图只是重定向,但任务永远不会被执行。错误日志中没有错误。关于我做错了什么的任何见解?
编辑:再看一遍后,我看到有人在谈论注册任务。这是我需要做的事情吗?
答案 0 :(得分:4)
我遇到了同样的问题,我刚解决了。 MattH是对的:这是由于没有跑步的工人。
我在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)中的一个错误。
我通过从GitHub(https://github.com/antoinemartin/django-windows-tools)下载最新版本的django-windows-tools来修复此问题。
答案 1 :(得分:1)
答案 2 :(得分:0)
通常在Windows中使用异步celery任务时,会出现错误,该错误可以通过设置参数来解决。
即: 在文件 celery.py 中使用 Django ,您应该:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'main.settings')
os.environ.setdefault('FORKED_BY_MULTIPROCESSING', '1')
<==添加此行以获得Windows兼容性。
这将解决Windows上的问题,并且不会在其他系统上造成不兼容性问题。