spinach

Modern Redis task queue for Python 3

https://github.com/nicolaslm/spinach

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.7%) to scientific vocabulary

Keywords

asyncio jobs python python3 queue redis tasks thread
Last synced: 6 months ago · JSON representation

Repository

Modern Redis task queue for Python 3

Basic Info
Statistics
  • Stars: 64
  • Watchers: 5
  • Forks: 4
  • Open Issues: 7
  • Releases: 24
Topics
asyncio jobs python python3 queue redis tasks thread
Created over 8 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.rst

Spinach
=======

.. image:: https://github.com/NicolasLM/spinach/workflows/Run%20tests/badge.svg?branch=master
    :target: https://github.com/NicolasLM/spinach/actions
.. image:: https://coveralls.io/repos/github/NicolasLM/spinach/badge.svg?branch=master
    :target: https://coveralls.io/github/NicolasLM/spinach?branch=master
.. image:: https://readthedocs.org/projects/spinach/badge/?version=latest
    :target: http://spinach.readthedocs.io/en/latest/?badge=latest
.. image:: https://img.shields.io/badge/IRC-irc.libera.chat-1e72ff.svg?style=flat
    :target: https://kiwiirc.com/nextclient/irc.libera.chat:+6697/#spinach

Redis task queue for Python 3 heavily inspired by Celery and RQ.

Distinctive features:

- Threaded and asyncio workers
- At-least-once or at-most-once delivery per task
- Periodic tasks without an additional process
- Concurrency limits on queued jobs
- Scheduling of tasks in batch
- Integrations with `Flask, Django, Logging, Sentry and Datadog
  `_
- Embeddable workers for easier testing
- See `design choices
  `_ for more
  details

Quickstart
----------

Install Spinach with pip::

   pip install spinach

Create a task and schedule a job to be executed now:

.. code:: python

    from spinach import Engine, MemoryBroker

    spin = Engine(MemoryBroker())


    @spin.task(name='compute')
    def compute(a, b):
        print('Computed {} + {} = {}'.format(a, b, a + b))


    # Schedule a job to be executed ASAP
    spin.schedule(compute, 5, 3)

    print('Starting workers, ^C to quit')
    spin.start_workers()

Documentation
-------------

The documentation is at `https://spinach.readthedocs.io
`_.

IRC channel for online discussions **#spinach** on `irc.libera.chat
`_.

License
-------

BSD 2-clause

Owner

  • Name: Nicolas Le Manchet
  • Login: NicolasLM
  • Kind: user
  • Location: Poland

Senior Software Engineer

GitHub Events

Total
  • Release event: 1
  • Watch event: 2
  • Push event: 2
  • Pull request review comment event: 1
  • Pull request review event: 2
  • Create event: 2
Last Year
  • Release event: 1
  • Watch event: 2
  • Push event: 2
  • Pull request review comment event: 1
  • Pull request review event: 2
  • Create event: 2

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 150
  • Total Committers: 5
  • Avg Commits per committer: 30.0
  • Development Distribution Score (DDS): 0.173
Past Year
  • Commits: 20
  • Committers: 3
  • Avg Commits per committer: 6.667
  • Development Distribution Score (DDS): 0.55
Top Committers
Name Email Commits
Nicolas Le Manchet n****s@l****r 124
Julian Edwards b****s@g****m 12
Nicolas Simonds n****d@c****m 10
Nicolas Simonds g****b@s****t 3
Julian Edwards j****r@c****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 23
  • Total pull requests: 26
  • Average time to close issues: 4 months
  • Average time to close pull requests: 1 day
  • Total issue authors: 5
  • Total pull request authors: 2
  • Average comments per issue: 4.13
  • Average comments per pull request: 1.54
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • juledwar (10)
  • 0xDEC0DE (7)
  • bigjools (3)
  • lqmanh (1)
  • jezdez (1)
Pull Request Authors
  • bigjools (19)
  • 0xDEC0DE (18)
Top Labels
Issue Labels
bug (2) enhancement (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 460 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 4
  • Total versions: 23
  • Total maintainers: 1
pypi.org: spinach

Modern Redis task queue for Python 3

  • Versions: 23
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 460 Last month
Rankings
Dependent repos count: 7.5%
Stargazers count: 8.8%
Dependent packages count: 10.0%
Average: 12.2%
Forks count: 15.3%
Downloads: 19.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • blinker *
  • redis *
.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/tests.yml actions
  • AndreMiras/coveralls-python-action develop composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • redis * docker
tests/docker-compose.yml docker
  • docker.io/redis latest