Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sibson/redbeat

RedBeat is a Celery Beat Scheduler that stores the scheduled tasks and runtime metadata in Redis.
https://github.com/sibson/redbeat

celery redis

Last synced: 3 months ago
JSON representation

RedBeat is a Celery Beat Scheduler that stores the scheduled tasks and runtime metadata in Redis.

Awesome Lists containing this project

README

        

RedBeat
=======

.. image:: https://img.shields.io/pypi/pyversions/celery-redbeat.svg
:target: https://pypi.python.org/pypi/celery-redbeat
:alt: Python Versions

.. image:: https://img.shields.io/pypi/v/celery-redbeat.svg
:target: https://pypi.python.org/pypi/celery-redbeat
:alt: PyPI Package

.. image:: https://github.com/sibson/redbeat/workflows/RedBeat%20CI/badge.svg
:target: https://github.com/sibson/redbeat/actions
:alt: Actions Status

.. image:: https://readthedocs.org/projects/redbeat/badge/?version=latest&style=flat
:target: https://redbeat.readthedocs.io/en/latest/
:alt: ReadTheDocs

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: Code style: black

`RedBeat `_ is a
`Celery Beat Scheduler `_
that stores the scheduled tasks and runtime metadata in `Redis `_.

Why RedBeat?
-------------

#. Dynamic live task creation and modification, without lengthy downtime
#. Externally manage tasks from any language with Redis bindings
#. Shared data store; Beat isn't tied to a single drive or machine
#. Fast startup even with a large task count
#. Prevent accidentally running multiple Beat servers

For more background on the genesis of RedBeat see this `blog post `_

Getting Started
---------------

Install with pip:

.. code-block:: console

pip install celery-redbeat

Configure RedBeat settings in your Celery configuration file:

.. code-block:: python

redbeat_redis_url = "redis://localhost:6379/1"

Then specify the scheduler when running Celery Beat:

.. code-block:: console

celery beat -A . -S redbeat.RedBeatScheduler

If using the embedded beat in a worker process (like in development), specify the scheduler like so:

.. code-block:: console

celery worker --beat --scheduler redbeat.RedBeatScheduler ...

RedBeat uses a distributed lock to prevent multiple instances running.
To disable this feature, set:

.. code-block:: python

redbeat_lock_key = None

More details available on `Read the Docs `_

Development
--------------
RedBeat is available on `GitHub `_

Once you have the source you can run the tests with the following commands::

pip install -r requirements-dev.txt
python -m unittest discover tests

You can also quickly fire up a sample Beat instance with::

celery beat --config exampleconf