{"id":13477202,"url":"https://github.com/NicolasLM/spinach","last_synced_at":"2025-03-27T04:32:52.001Z","repository":{"id":24711494,"uuid":"102268369","full_name":"NicolasLM/spinach","owner":"NicolasLM","description":"Modern Redis task queue for Python 3","archived":false,"fork":false,"pushed_at":"2024-06-03T01:27:59.000Z","size":245,"stargazers_count":63,"open_issues_count":6,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-13T09:11:16.610Z","etag":null,"topics":["asyncio","jobs","python","python3","queue","redis","tasks","thread"],"latest_commit_sha":null,"homepage":"https://spinach.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicolasLM.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-03T13:58:29.000Z","updated_at":"2024-05-15T14:05:21.000Z","dependencies_parsed_at":"2024-01-16T06:16:43.829Z","dependency_job_id":"cbbbda72-8d43-497d-94b2-b7568209b2fa","html_url":"https://github.com/NicolasLM/spinach","commit_stats":{"total_commits":130,"total_committers":5,"mean_commits":26.0,"dds":0.0692307692307692,"last_synced_commit":"6e3356e34e104cd3aa136e47bf3a61778b68918e"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicolasLM%2Fspinach/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicolasLM","download_url":"https://codeload.github.com/NicolasLM/spinach/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245785591,"owners_count":20671628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asyncio","jobs","python","python3","queue","redis","tasks","thread"],"created_at":"2024-07-31T16:01:39.381Z","updated_at":"2025-03-27T04:32:51.994Z","avatar_url":"https://github.com/NicolasLM.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Spinach\n=======\n\n.. image:: https://github.com/NicolasLM/spinach/workflows/Run%20tests/badge.svg?branch=master\n    :target: https://github.com/NicolasLM/spinach/actions\n.. image:: https://coveralls.io/repos/github/NicolasLM/spinach/badge.svg?branch=master\n    :target: https://coveralls.io/github/NicolasLM/spinach?branch=master\n.. image:: https://readthedocs.org/projects/spinach/badge/?version=latest\n    :target: http://spinach.readthedocs.io/en/latest/?badge=latest\n.. image:: https://img.shields.io/badge/IRC-irc.libera.chat-1e72ff.svg?style=flat\n    :target: https://kiwiirc.com/nextclient/irc.libera.chat:+6697/#spinach\n\nRedis task queue for Python 3 heavily inspired by Celery and RQ.\n\nDistinctive features:\n\n- Threaded and asyncio workers\n- At-least-once or at-most-once delivery per task\n- Periodic tasks without an additional process\n- Concurrency limits on queued jobs\n- Scheduling of tasks in batch\n- Integrations with `Flask, Django, Logging, Sentry and Datadog\n  \u003chttps://spinach.readthedocs.io/en/stable/user/integrations.html\u003e`_\n- Embeddable workers for easier testing\n- See `design choices\n  \u003chttps://spinach.readthedocs.io/en/stable/user/design.html\u003e`_ for more\n  details\n\nQuickstart\n----------\n\nInstall Spinach with pip::\n\n   pip install spinach\n\nCreate a task and schedule a job to be executed now:\n\n.. code:: python\n\n    from spinach import Engine, MemoryBroker\n\n    spin = Engine(MemoryBroker())\n\n\n    @spin.task(name='compute')\n    def compute(a, b):\n        print('Computed {} + {} = {}'.format(a, b, a + b))\n\n\n    # Schedule a job to be executed ASAP\n    spin.schedule(compute, 5, 3)\n\n    print('Starting workers, ^C to quit')\n    spin.start_workers()\n\nDocumentation\n-------------\n\nThe documentation is at `https://spinach.readthedocs.io\n\u003chttps://spinach.readthedocs.io/en/stable/index.html\u003e`_.\n\nIRC channel for online discussions **#spinach** on `irc.libera.chat\n\u003chttps://kiwiirc.com/nextclient/irc.libera.chat:+6697/#spinach\u003e`_.\n\nLicense\n-------\n\nBSD 2-clause\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNicolasLM%2Fspinach","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNicolasLM%2Fspinach","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNicolasLM%2Fspinach/lists"}