7

我能够执行我的任务没问题

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

这是一个问题,因为这个任务很容易花费一个小时。所以我尝试使任务异步。我尝试了以下两种方法:

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

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

编辑:再环顾四周后,我看到人们在谈论注册任务。这是我需要做的吗?

4

3 回答 3

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 解决了这个问题。

于 2013-06-24T10:19:31.627 回答
1

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

看看 celery 的工人任务文档。

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

于 2013-04-05T12:27:13.693 回答
0

通常在 Windows 中使用异步 celery 任务时,您会收到一个错误,该错误可以通过设置参数来修复。

即:使用文件celery.py中的Django ,您应该:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'main.settings') os.environ.setdefault('FORKED_BY_MULTIPROCESSING', '1') <== 添加此行以实现 Windows 兼容性。

这将解决 Windows 上的问题,并且不会在其他系统上产生不兼容问题。

于 2020-06-11T10:04:23.127 回答