[Django]-How to test celery with django on a windows machine

10๐Ÿ‘

โœ…

Celery (since version 4 as pointed out by another answer) does not support Windows (source: http://docs.celeryproject.org/en/latest/faq.html#does-celery-support-windows). Even so, you have some options:

1) Use task_always_eager=True. This will run your tasks synchronously โ€“ with this, you can verify that your code is doing what itโ€™s supposed to do. Running tasks synchronously works even on Windows.

More info: http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-task_always_eager

2) Use WSL (Windows Subsystem for Linux).

More info: https://learn.microsoft.com/en-us/windows/wsl/install-win10#install-the-windows-subsystem-for-linux

3) Use Docker for Windows. You can run Celery Worker(s) and Celery Beat inside the container.

More info: https://docs.docker.com/docker-for-windows/

Personally, I use option 1) for unit testing and option 2) for development.

๐Ÿ‘คillagrenan

3๐Ÿ‘

There are two workarounds to make Celery work (natively) on Windows โ€“ and therefore be able to test it as if it were on Linux.

  • use eventlet, gevent or solo concurrency pool (if your tasks as I/O and not CPU-bound)
  • set the environment variable FORKED_BY_MULTIPROCESS=1 (this is what actually causes the underlying billiard package to to fail under Windows since version 4)

https://www.distributedpython.com/2018/08/21/celery-4-windows/

๐Ÿ‘คBjoern Stiel

0๐Ÿ‘

Actually you cant. Since Celery 4.x, Windows is no longer supported due to lack of resources. This is what official documentation of celery says.

0๐Ÿ‘

Donโ€™t know if celery is supported or not in windows officially now, but i am able to use celery directly on windows without any other workarounds.

currently installed it with pip install celery==5.0.5. I am successfully able to run background tasks and perform other features also from my Django app through Redis as broker.

Otherwise the best way for development purpose will be to use WSL as pointed out by others, although it has itโ€™s own pros and cons.

๐Ÿ‘คNanda Gopal

Leave a comment