【发布时间】:2018-12-31 00:35:24
【问题描述】:
我正在寻找有关如何在基于 Linux 的服务器上部署之前在我的 Windows 机器上测试 django celery 的资源、文档或建议。
任何有用的答案都将受到赞赏和接受。
【问题讨论】:
标签: django django-models redis rabbitmq celery
我正在寻找有关如何在基于 Linux 的服务器上部署之前在我的 Windows 机器上测试 django celery 的资源、文档或建议。
任何有用的答案都将受到赞赏和接受。
【问题讨论】:
标签: django django-models redis rabbitmq celery
Celery(因为另一个答案指出的版本 4)不支持 Windows(来源:http://docs.celeryproject.org/en/latest/faq.html#does-celery-support-windows)。即便如此,您也有一些选择:
1) 使用task_always_eager=True。这将同步运行您的任务——通过它,您可以验证您的代码是否正在执行它应该执行的操作。即使在 Windows 上也能同步运行任务。
更多信息:http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-task_always_eager
2) 使用 WSL(适用于 Linux 的 Windows 子系统)。
更多信息:https://docs.microsoft.com/en-us/windows/wsl/install-win10#install-the-windows-subsystem-for-linux
3) 使用适用于 Windows 的 Docker。您可以在容器内运行 Celery Worker(s) 和 Celery Beat。
更多信息:https://docs.docker.com/docker-for-windows/
就个人而言,我使用选项 1) 进行单元测试,使用选项 2) 进行开发。
【讨论】:
有两种解决方法可以让 Celery 在 Windows 上(本机)工作 - 因此能够像在 Linux 上一样对其进行测试。
https://www.distributedpython.com/2018/08/21/celery-4-windows/
【讨论】:
其实你不能。从 Celery 4.x 开始,由于资源不足,不再支持 Windows。这就是official documentation of celery 所说的。
【讨论】:
不知道现在windows是否支持celery,但我可以直接在windows上使用celery,没有任何其他解决方法。
当前使用pip install celery==5.0.5 安装它。我还能够通过 Redis 作为代理从我的 Django 应用程序中成功运行后台任务并执行其他功能。
否则,开发目的的最佳方式将是使用其他人指出的 WSL,尽管它有自己的优点和缺点。
【讨论】: