{"id":21306542,"url":"https://github.com/redibox/job","last_synced_at":"2025-07-11T21:31:34.460Z","repository":{"id":57149045,"uuid":"57253778","full_name":"redibox/job","owner":"redibox","description":"High performance, robust and flexible queue/worker system powered by redis.","archived":false,"fork":false,"pushed_at":"2017-01-06T11:17:34.000Z","size":138,"stargazers_count":8,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-12T08:43:01.336Z","etag":null,"topics":["job","node","node-redis","nodejs","queue","redis"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redibox.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2016-04-27T22:47:00.000Z","updated_at":"2023-03-10T11:56:02.000Z","dependencies_parsed_at":"2022-09-05T13:21:17.960Z","dependency_job_id":null,"html_url":"https://github.com/redibox/job","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/redibox/job","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redibox%2Fjob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redibox%2Fjob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redibox%2Fjob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redibox%2Fjob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redibox","download_url":"https://codeload.github.com/redibox/job/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redibox%2Fjob/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264902405,"owners_count":23681061,"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":["job","node","node-redis","nodejs","queue","redis"],"created_at":"2024-11-21T16:24:28.838Z","updated_at":"2025-07-11T21:31:33.242Z","avatar_url":"https://github.com/redibox.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RediBox Job\n\n[![Coverage Status](https://coveralls.io/repos/github/redibox/job/badge.svg?branch=master)](https://coveralls.io/github/redibox/job?branch=master)\n![Downloads](https://img.shields.io/npm/dt/redibox-hook-job.svg)\n[![npm version](https://img.shields.io/npm/v/redibox-hook-job.svg)](https://www.npmjs.com/package/redibox-hook-job)\n[![dependencies](https://img.shields.io/david/redibox/job.svg)](https://david-dm.org/redibox/job)\n[![build](https://travis-ci.org/redibox/job.svg)](https://travis-ci.org/redibox/job)\n[![License](https://img.shields.io/npm/l/redibox-hook-job.svg)](/LICENSE)\n\nThe RediBox Job hook allows code to be run \u0026 distributed across many servers, whilst being highly configurable. Works well with the [Schedule](https://github.com/redibox/schedule) hook.\n\n### Features\n - Poll free design.\n - Optional job TTL.\n - Optional job retries.\n - Optional job uniqueness.\n - Queue rate limiting - X per X seconds.\n - Standalone, Sentinel or Clustered Redis confgurations supported.\n - Stalling prevention - gracefully resumes from shutdowns / crashes.\n - Optional job statuses / progress sent via pubsub to the job creator.\n - Flexible job runner functions - your functions can return a promise or just a synchronous result.\n - Chain together jobs accross multiple queues and pass individual results onto the next job.\n   - Cancel the relay at any point on any of the jobs.\n   - Throttle stages of the relay by jumping to a throttled queue.\n - Single queue job handler function or individual handlers per job using dot notated paths to global functions.\n\n\n### Coming in v2\n - Capped history lists of jobs.\n - Queue stats (process times, average job waiting time etc).\n - Job tagging. Tag a job and track it throughout it's lifetime.\n - JSON API via [redibox/api](https://github.com/redibox/api).\n - Responsive UI via [redibox/ui](https://github.com/redibox/ui).\n - Delayed / scheduled jobs via [redibox/schedule](https://github.com/redibox/schedule) (v2).\n\n\n\n### Installation\n\nFirst ensure you have [RediBox](https://github.com/redibox/core) installed.\n\nInstall Job via npm/yarn:\n\n`npm install redibox-hook-job --save`\n`yarn add redibox-hook-job`\n\n#### Usage\n\n```javascript\nRediBox.hooks.job.create('my-queue', {\n  runs: 'sails.hooks.myhook.runJobFoo', // dot notated path to a globally accessible function\n  data: {\n    foo: 'bar',\n  }\n});\n\n// With Sails hook\nJob.create('my-queue', {\n  runs: 'sails.hooks.myhook.runJobBar', // dot notated path to a globally accessible function\n  data: {\n    foo: 'bar',\n  }\n});\n```\n\n### Documentation\n\n- [Getting Started](https://github.com/redibox/job/blob/master/docs/getting-started.md)\n- [Queues](https://github.com/redibox/job/blob/master/docs/queues.md)\n- [Creating Jobs](https://github.com/redibox/job/blob/master/docs/creating-jobs.md)\n- [Advanced Usage](https://github.com/redibox/job/blob/master/docs/advanced-usage.md)\n- [Best Practices](https://github.com/redibox/job/blob/master/docs/best-practices.md)\n\n### License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredibox%2Fjob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredibox%2Fjob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredibox%2Fjob/lists"}