Reputation: 351
I'm looking for a resource, documentation or advise on how to test django celery on my windows machine before deploying on a Linux based server.
Any useful Answer would be appreciated and accepted.
Upvotes: 3
Views: 6742
Reputation: 11
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.
Upvotes: 0
Reputation: 4161
There are two workarounds to make Celery work (natively) on Windows - and therefore be able to test it as if it were on Linux.
https://www.distributedpython.com/2018/08/21/celery-4-windows/
Upvotes: 3
Reputation: 6555
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.
Upvotes: 10
Reputation: 1977
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.
Upvotes: 0