在基于Linux的服务器上部署之前,我正在寻找关于如何在windows机器上测试django-celeron的资源、文档或建议。
如有任何有用的答案,我们将不胜感激。
Celery(由于另一个答案指出的版本4(不支持Windows(来源:http://docs.celeryproject.org/en/latest/faq.html#does-芹菜支撑窗(。即便如此,你也有一些选择:
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://learn.microsoft.com/en-us/windows/wsl/install-win10#install-linux 的windows子系统
3(使用Docker for Windows。您可以在容器内运行Celery Worker和Celery Beat。
更多信息:https://docs.docker.com/docker-for-windows/
就我个人而言,我使用1(选项进行单元测试,使用2(项进行开发。
有两种解决方案可以使Celery在Windows上(本机(工作,因此可以像在Linux上一样对其进行测试。
- 使用eventlet、gevent或solo并发池(如果您的任务是I/O而非CPU绑定(
- 将环境变量FORKED_BY_MULTIPROCESS设置为1(这是自版本4以来导致底层台球包在Windows下失败的实际原因(
https://www.distributedpython.com/2018/08/21/celery-4-windows/
实际上你做不到。自从Celery 4.x之后,由于资源不足,Windows不再受支持。这是芹菜的官方文件所说的。
现在不知道windows是否正式支持芹菜,但我可以直接在windows上使用芹菜,而无需任何其他解决方案。
当前已将其与CCD_ 2一起安装。我能够通过Redis作为代理成功地从Django应用程序运行后台任务和执行其他功能。
否则,实现开发目的的最佳方式将是使用其他人指出的WSL,尽管它有自己的优缺点。