12๐
A simple, non-Celery way to approach things would be to create custom django-admin commands to perform your asynchronous or scheduled tasks.
Then, on Windows, you use the at
command to schedule these tasks. On Linux, you use cron
.
Iโd also strongly recommend ditching Windows if you can for a development environment. Your life will be so much better on Linux or even Mac OSX. Re-purpose a spare or old machine with Ubuntu for example, or run Ubuntu in a VM on your Windows box.
19๐
I had the same problem, and held off trying to solve it with celery (too complicated) or cron (external to application) and ended up finding Advanced Python Scheduler. Only just started using it but it seems reasonably mature and stable, has decent documentation and will take a number of scheduling formats (e.g. cron style).
From the documentation, running a function at a specific interval.
from apscheduler.scheduler import Scheduler
sched = Scheduler()
sched.start()
def hello_world():
print "hello world"
sched.add_interval_job(hello_world,seconds=10)
This is non-blocking, and I run something pretty identical by simply importing the module from my urls.py
. Hope this helps.
- Google App Engine logs a mess of New connection for โฆ and Client closed local connection on
- How to logout in django?
- Creating Reusable Django Apps?
- How to connect django to docker redis container?
- Send email confirmation after registration django
1๐
https://github.com/andybak/django-cron
Triggered by a single cron task but all the scheduling and configuration is done in Python.
- DRF: Retrieve outer input data from nested serializer validate method
- How to make a customizable user survey in Django
- Dict keys with spaces in Django templates
- Running django tests with selenium in docker
1๐
Django Chronograph is a great alternative. You only need to setup one cron then do everything in django admin. You can schedule tasks/commands from django management.