django-transactional-task-queue


Namedjango-transactional-task-queue JSON
Version 0.1.4 PyPI version JSON
download
home_pagehttps://github.com/aivarsk/django-transactional-task-queue
SummaryA simple Celery-like transactional task queue for Django
upload_time2024-07-23 14:28:22
maintainerNone
docs_urlNone
authorAivars Kalvans
requires_python>=3.10
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Django Transaction Task Queue
=============================

A short and simple Celery replacement for my Django projects.

* *Database is the only backend.* The task is a simple Django model, it uses the same transaction and connection as other models. No more ``transaction.on_commit`` hooks to schedule tasks.
* *Tasks do not produce any results* and there is no "result backend". If you need to store results, pass a unique key into the task and store the result in some DIY model.
* *You can not wait on the response from the task*, there is no ``get`` or ``join`` to get the task result. I think a thread pool or process pool is better for those requirements.
* *No workflows and chaining of jobs.*
* *ETA (estimated time of arrival) is a first-class citizen.* It does not depend on whether backends support the feature or not.
* *The worker is a single-threaded process*, you start several of those to scale. I have seen too many issues with autoscaling workers, worker processes killed by OS, workers stuck: simple is better.
* *No prefetching or visibility timeouts*. The worker picks the first available task and processes it.
* *Dead letter queue* built in. You get access to failed tasks and can retry them.
* *Django admin for monitoring.* You can view pending tasks, failed, and "dirty" (crashed in the middle of work). Failed and "dirty" tasks can be retried from the same Django admin.   
* *Easy to get the metrics* from Django shell and export to your favorite monitoring tool
* *Task records are removed after successful execution*. Unlike Celery SQLAlchemy's backend, records are removed so you don't have to care about archiving. It also keeps the table small, properly indexed and efficient.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/aivarsk/django-transactional-task-queue",
    "name": "django-transactional-task-queue",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Aivars Kalvans",
    "author_email": "aivars.kalvans@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/4b/5b/8ca743a0df2149cc2e26f312f3ab4887a78dfd0a20c6d4fd37f21fd50e36/django_transactional_task_queue-0.1.4.tar.gz",
    "platform": null,
    "description": "Django Transaction Task Queue\n=============================\n\nA short and simple Celery replacement for my Django projects.\n\n* *Database is the only backend.* The task is a simple Django model, it uses the same transaction and connection as other models. No more ``transaction.on_commit`` hooks to schedule tasks.\n* *Tasks do not produce any results* and there is no \"result backend\". If you need to store results, pass a unique key into the task and store the result in some DIY model.\n* *You can not wait on the response from the task*, there is no ``get`` or ``join`` to get the task result. I think a thread pool or process pool is better for those requirements.\n* *No workflows and chaining of jobs.*\n* *ETA (estimated time of arrival) is a first-class citizen.* It does not depend on whether backends support the feature or not.\n* *The worker is a single-threaded process*, you start several of those to scale. I have seen too many issues with autoscaling workers, worker processes killed by OS, workers stuck: simple is better.\n* *No prefetching or visibility timeouts*. The worker picks the first available task and processes it.\n* *Dead letter queue* built in. You get access to failed tasks and can retry them.\n* *Django admin for monitoring.* You can view pending tasks, failed, and \"dirty\" (crashed in the middle of work). Failed and \"dirty\" tasks can be retried from the same Django admin.   \n* *Easy to get the metrics* from Django shell and export to your favorite monitoring tool\n* *Task records are removed after successful execution*. Unlike Celery SQLAlchemy's backend, records are removed so you don't have to care about archiving. It also keeps the table small, properly indexed and efficient.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A simple Celery-like transactional task queue for Django",
    "version": "0.1.4",
    "project_urls": {
        "Homepage": "https://github.com/aivarsk/django-transactional-task-queue"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b5b8ca743a0df2149cc2e26f312f3ab4887a78dfd0a20c6d4fd37f21fd50e36",
                "md5": "417b47e14b33781c508e51e149f109f1",
                "sha256": "6d4ef35871d3194c2dc49f877d0db067550880e0fb421f3691e5f1bea4180e7d"
            },
            "downloads": -1,
            "filename": "django_transactional_task_queue-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "417b47e14b33781c508e51e149f109f1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 8301,
            "upload_time": "2024-07-23T14:28:22",
            "upload_time_iso_8601": "2024-07-23T14:28:22.293808Z",
            "url": "https://files.pythonhosted.org/packages/4b/5b/8ca743a0df2149cc2e26f312f3ab4887a78dfd0a20c6d4fd37f21fd50e36/django_transactional_task_queue-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-23 14:28:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aivarsk",
    "github_project": "django-transactional-task-queue",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "django-transactional-task-queue"
}
        
Elapsed time: 0.98610s