{"adoption": {"forks": 1487, "observed_at": "2026-08-28T04:10:43.719003+00:00", "stars": 10670}, "canonical_url": "https://ross.abutalabs.com/products/rq", "card": {"archived": false, "artifact_type": "library", "description": "Simple job queues for Python", "domain": ["backend", "web-development", "microservices"], "enriched": true, "function": ["message-queue", "scheduling", "workflow-automation"], "health_score": 100, "homepage": "https://python-rq.org", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "stable", "member_repos": ["rq/rq", "rq/django-rq", "rq/rq-scheduler"], "name": "RQ", "platform": ["python", "self-hosted", "cross-platform"], "pushed_at": "2026-08-24T19:14:13+00:00", "repo": "rq/rq", "stars": 10670, "tags": ["task-queue", "background-jobs", "workers", "django", "delayed-jobs", "job-scheduling", "valkey", "automation", "redis"], "topics": ["redis", "python", "task-queue", "workers", "rq", "delayed-jobs", "delayed-tasks", "background-jobs", "job-queue", "task", "async"], "urls": [{"kind": "homepage", "url": "https://python-rq.org"}, {"kind": "site_page", "url": "https://python-rq.org/docs"}], "use_cases": ["run background jobs in python", "queue long-running tasks off the request cycle", "schedule jobs to run at a specific time or after a delay", "retry failed jobs automatically", "process tasks with prioritized worker queues", "integrate a task queue into django", "run cron-style recurring jobs"], "what_it_is": "RQ (Redis Queue) is a simple Python library for queueing jobs and processing them in the background with workers, backed by Redis or Valkey. It includes companion packages for Django integration (django-rq) and job scheduling (rq-scheduler).", "when_to_avoid": ["you need a distributed task queue without a Redis dependency", "you require complex workflow orchestration, DAGs, or advanced routing like Celery offers", "you need message-queue semantics beyond at-least-once job execution"], "when_to_choose": ["you want a lightweight, easy-to-learn task queue with a low barrier to entry", "you already run Redis or Valkey in your stack", "you need simple scheduling, retries, and job prioritization", "you use Django and want first-class queue integration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/rq/rq", "repo": "rq/rq", "role": "main", "score": 95}, {"path": "/repos/rq/django-rq", "repo": "rq/django-rq", "role": "plugin", "score": 92}, {"path": "/repos/rq/rq-scheduler", "repo": "rq/rq-scheduler", "role": "plugin", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.719003+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:18:11.928030+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98981eed8d63061c1046a4325021a57592f0b39af5db269020179b7f2f6e09c7", "fetched_at": "2026-08-28T04:10:43.719003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rq/rq"}, {"content_hash": "75de23587062fcb3f1475c9d3866a52eafb964be6b804353167da6fc7481ac18", "fetched_at": "2026-08-29T08:17:17.785212+00:00", "kind": "homepage", "missing": false, "url": "https://python-rq.org"}, {"content_hash": "d90f7a1423ee520df5250842b497b77772535308161d087b24aab6f655a18925", "fetched_at": "2026-08-29T08:17:17.798853+00:00", "kind": "site_page", "missing": false, "url": "https://python-rq.org/docs"}, {"content_hash": "055a6181ccbc32e57e1740ea1c83dd81a8aac4507eb9521614419f1146d317f9", "fetched_at": "2026-08-29T08:17:17.801693+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq/json"}, {"content_hash": "84d3d7ea42e02a697b916b76a9eafa3a7c853e3fee37aa77995212b690d24aab", "fetched_at": "2026-08-29T08:17:17.803807+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-rq/json"}, {"content_hash": "1375527bb58cc363e946372630bdb638901024b76c105dbd9c01d3f11a49f387", "fetched_at": "2026-08-29T08:17:17.806940+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rq-scheduler/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5406, "days_push": 9, "days_rel": 16, "gap_med": 32, "n_releases_24m": 18}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}