All Projects → NicolasLM → spinach

NicolasLM / spinach

Licence: BSD-2-Clause license
Modern Redis task queue for Python 3

Programming Languages

python
139335 projects - #7 most used programming language
lua
6591 projects

Projects that are alternatives of or similar to spinach

Flask Rq2
A Flask extension for RQ.
Stars: ✭ 176 (+282.61%)
Mutual labels:  queue, tasks, jobs
joobq
JoobQ is a fast, efficient asynchronous reliable job queue and job scheduler library processing. Jobs are submitted to a job queue, where they reside until they are able to be scheduled to run in a computing environment.
Stars: ✭ 26 (-43.48%)
Mutual labels:  queue, tasks, jobs
dispatcher
Dispatcher is an asynchronous task queue/job queue based on distributed message passing.
Stars: ✭ 60 (+30.43%)
Mutual labels:  queue, tasks, jobs
Arq
Fast job queuing and RPC in python with asyncio and redis.
Stars: ✭ 695 (+1410.87%)
Mutual labels:  queue, tasks, asyncio
theeye-of-sauron
TheEye Dockers and QuickStart
Stars: ✭ 27 (-41.3%)
Mutual labels:  queue, tasks, jobs
Fennel
A task queue library for Python and Redis
Stars: ✭ 24 (-47.83%)
Mutual labels:  queue, jobs, asyncio
Workq
Job server in Go
Stars: ✭ 1,546 (+3260.87%)
Mutual labels:  queue, jobs
Sc
Common libraries and data structures for C.
Stars: ✭ 161 (+250%)
Mutual labels:  queue, thread
Stevejobs
A simple jobs queue that just works (for Meteor.js)
Stars: ✭ 195 (+323.91%)
Mutual labels:  queue, jobs
qless-php
PHP Bindings for qless
Stars: ✭ 25 (-45.65%)
Mutual labels:  queue, jobs
Mainthreadguard
💂 Tracking UIKit access on main thread
Stars: ✭ 53 (+15.22%)
Mutual labels:  queue, thread
Redis Smq
A simple high-performance Redis message queue for Node.js.
Stars: ✭ 230 (+400%)
Mutual labels:  queue, jobs
workq
A super tiny work queue
Stars: ✭ 38 (-17.39%)
Mutual labels:  queue, jobs
Loafer
Asynchronous message dispatcher - Currently using asyncio and amazon SQS
Stars: ✭ 104 (+126.09%)
Mutual labels:  queue, asyncio
Foundatio
Pluggable foundation blocks for building distributed apps.
Stars: ✭ 1,365 (+2867.39%)
Mutual labels:  queue, jobs
Diskqueue
A thread-safe, multi-process(ish) persistent queue library for .Net and Mono
Stars: ✭ 66 (+43.48%)
Mutual labels:  queue, thread
jobs
RoadRunner: Background PHP workers, Queue brokers
Stars: ✭ 59 (+28.26%)
Mutual labels:  queue, jobs
async
async is a tiny C++ header-only high-performance library for async calls handled by a thread-pool, which is built on top of an unbounded MPMC lock-free queue.
Stars: ✭ 25 (-45.65%)
Mutual labels:  queue, tasks
python-asynchronous-tasks
😎Asynchronous tasks in Python with Celery + RabbitMQ + Redis
Stars: ✭ 37 (-19.57%)
Mutual labels:  queue, tasks
youtube-dl-nas
youtube download queue websocket server with login for private NAS.
Stars: ✭ 136 (+195.65%)
Mutual labels:  queue, thread

Spinach

https://github.com/NicolasLM/spinach/workflows/Run%20tests/badge.svg?branch=master https://coveralls.io/repos/github/NicolasLM/spinach/badge.svg?branch=master https://readthedocs.org/projects/spinach/badge/?version=latest https://img.shields.io/badge/IRC-irc.libera.chat-1e72ff.svg?style=flat

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:

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].