Metadata-Version: 2.5
Name: oxpull
Version: 1.9.0
Summary: Metapackage that installs django-ox>=1.9.0. Contains no Python module.
Project-URL: Homepage, https://oxpull.com/
Project-URL: Documentation, https://oxpull.com/django-ox/
Project-URL: Source, https://github.com/oxpull/django-ox
Author: Oxpull
License-Expression: BSD-3-Clause
License-File: LICENSE
Keywords: background-tasks,django,task-queue,tasks,worker
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.12
Requires-Dist: django-ox>=1.9.0
Description-Content-Type: text/markdown

# Welcome to `oxpull`

Run Django's Tasks framework in your existing database with django-ox. Get transactional enqueue, retries, dead-worker recovery, recurring schedules and monitoring, with no separate broker.

django-ox 1.9.0 includes the optional `oxpull` app: four more features for your task queue, all free and open source.

## Install and enable

The `oxpull` app requires Django 6.0+ and Python 3.12+.

```console
pip install django-ox
```

Keep `"django_ox"` in `INSTALLED_APPS`, then add:

```python
INSTALLED_APPS += ["oxpull"]
TASKS["default"]["BACKEND"] = "oxpull.backend.OxpullBackend"
```

```console
python manage.py migrate
```

## Four features, one app

- Unique tasks: deduplicate pending tasks at enqueue time.
- Batches: track progress and run a callback once every member settles.
- Rate limiting: share admission limits across workers.
- Workflows: express dependencies between tasks, with a provisional API.

Explore the [features](https://oxpull.com/django-ox/features/) and [documentation](https://oxpull.com/django-ox/).

## Measured django-ox core performance

Published benchmarks measured django-ox 1.3.0 core queue drain, kill recovery, bulk enqueue and retry, not the four `oxpull` features above.

- 2,000 of 2,000 tasks finished after 20 worker kills per trial.
- Queue drain up to 20% faster than django-tasks-db.
- Enqueueing 10,000 tasks took 0.71 s.

[See the benchmarks](https://oxpull.com/django-ox/benchmarks/).

Featured in PyCoder's Weekly #752 and listed in awesome-django under Task Queues. Core public API stable since 1.0.0. The workflow API is provisional.

## Package details

`pip install oxpull` installs the `oxpull` metapackage 1.9.0, whose only dependency is django-ox>=1.9.0. django-ox supplies the importable `oxpull` package; the metapackage has no Python module of its own.

Earlier installs: uninstall the earlier `oxpull` distribution **before upgrading django-ox**; follow the [upgrade guide](https://oxpull.com/django-ox/migrating/#earlier-oxpull-installs).

[Source](https://github.com/oxpull/django-ox) · BSD 3-Clause
