Metadata-Version: 2.4
Name: lazr.jobrunner
Version: 4.0.0
Summary: A Celery based job runner
Maintainer: LAZR Developers
License: LGPL v3
Project-URL: Homepage, https://launchpad.net/lazr.jobrunner
Project-URL: Source, https://code.launchpad.net/lazr.jobrunner
Project-URL: Issue Tracker, https://bugs.launchpad.net/lazr.jobrunner
Project-URL: Download, https://launchpad.net/lazr.jobrunner/+download
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: COPYING.txt
Requires-Dist: celery>=5.4.0; python_version >= "3.8"
Provides-Extra: test
Requires-Dist: oops>=0.0.11; extra == "test"
Requires-Dist: zope.testing<5.0.0,>=4.6.0; extra == "test"
Requires-Dist: zope.testrunner>=6.6.1; extra == "test"
Dynamic: license-file

================
lazr.jobrunner
================

A `Celery <https://docs.celeryq.dev/>`_-based job runner for the LAZR family
of libraries. It provides a base job model, a ``JobRunner`` that runs jobs
inside Celery workers, and supporting infrastructure for Launchpad-style
asynchronous job queues.

Features
--------

- ``JobRunner`` — runs jobs via Celery tasks, handling leases, error reporting
  (via the ``oops`` library), memory limits, and job suspension.
- ``RunJob`` Celery task base class — integrates ``JobRunner`` lifecycle into
  Celery's task model.
- ``jobrunnerctl`` — command-line tool for starting/stopping the Celery worker
  and inspecting queue state.
- ``clear-queues`` — command-line tool to drain Celery task queues.

Requirements
------------

- Python 3.8+
- `Celery <https://pypi.org/project/celery/>`_ >= 5.4.0
- A running ``rabbitmq-server`` for integration tests

Usage
-----

Install the package::

    pip install lazr.jobrunner

See the ``lazr.jobrunner.jobrunner`` module for the ``BaseJob``, ``JobRunner``,
and related classes.

Source and bugs
---------------

- Source: https://code.launchpad.net/lazr.jobrunner
- Bugs: https://bugs.launchpad.net/lazr.jobrunner

