Urd is a scheduler for Django projects
Project description
Urd is a scheduler for Django projects. Some features:
schedule < 1m time slots
single concurrent execution [1]
fast enable/disable [2]
simple deployment
no extra dependencies beyond Django
Setup
Install urd pip install urd
Add urd to INSTALLED_APPS
Run manage.py migrate
Start the scheduler with manage.py monitor
Usage
Define a tasks.py module in the app that should have tasks.
Create a function like this:
@schedulable_task
def my_task(heartbeat):
for foo in bar:
heartbeat()
do_some_task()
Calling heartbeat() regularly is important to make the task cancellable in a timely manner.
Now define a task in the iommi admin. It will be enabled pretty much as soon as you save.
Administration
Urd ships with integration for the iommi admin.
Why not cron/celery/django-q
Cron didn’t work for me because I need to execute a function more often than once a minute
Cron also doesn’t work for me because if you do once per minute, and the task takes two minutes, you get TWO executing processes of that task for a while. This can be disastrous for a few reasons, and can cause things to spiral out of control.
Celery/django-q are task queues, not schedulers. They have scheduler components, but they don’t have a way to ensure only one process at a time runs a specific task.
Django-q doesn’t allow schedules that execute more often than once per minute
Django-q caused me a lot of problems where the schedule seemed to put future items in the queue, and I couldn’t make it stop trying to execute them.
What does urd mean?
Urd (or Urðr, or Wyrd) is one of the Norns, the goddesses who weave the destiny of gods and humans.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file urd-1.3.0.tar.gz
.
File metadata
- Download URL: urd-1.3.0.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e139b3daaef90c24a8df677dca9ba2e560fd9148bd3c997fa051f98a387cb383 |
|
MD5 | 88dc51ba9dbe3441c9d80b995c477fa9 |
|
BLAKE2b-256 | cb5d45f0cacfaf8468ebb54cde706757b4b0395b824e661901b23bff6966dfcb |
File details
Details for the file urd-1.3.0-py2.py3-none-any.whl
.
File metadata
- Download URL: urd-1.3.0-py2.py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b11dbda681784a6dfd88b54a33a825a8e4db87dae06e5d8d982b7f7d16e46b5 |
|
MD5 | 07910151cbc1eb68f0e2368e27fe5ad0 |
|
BLAKE2b-256 | 4e4e85d107a9d8f048faa376251208fd79690b2406f4328d60a0dbedf41a9150 |