{"id":18508083,"url":"https://github.com/imqueue/job","last_synced_at":"2025-04-09T03:31:41.781Z","repository":{"id":57118454,"uuid":"314683150","full_name":"imqueue/job","owner":"imqueue","description":"Simple job queue","archived":false,"fork":false,"pushed_at":"2023-11-09T07:30:51.000Z","size":278,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-16T00:32:06.522Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imqueue.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-20T22:19:52.000Z","updated_at":"2021-11-01T15:05:07.000Z","dependencies_parsed_at":"2024-08-29T13:08:00.216Z","dependency_job_id":"fb26bed5-576c-4c72-b3fa-b468dbcc1d77","html_url":"https://github.com/imqueue/job","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"75428cf68fbc4d52378466248fc83cda4b2781ff"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fjob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fjob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fjob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fjob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imqueue","download_url":"https://codeload.github.com/imqueue/job/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247973679,"owners_count":21026717,"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":[],"created_at":"2024-11-06T15:13:21.404Z","updated_at":"2025-04-09T03:31:41.471Z","avatar_url":"https://github.com/imqueue.png","language":"TypeScript","readme":"# Simple Job Queue (@imqueue/job)\n\n[![Build Status](https://travis-ci.org/imqueue/job.svg?branch=master)](https://travis-ci.org/imqueue/job) \n[![Known Vulnerabilities](https://snyk.io/test/github/imqueue/job/badge.svg?targetFile=package.json)](https://snyk.io/test/github/imqueue/job?targetFile=package.json)\n[![License](https://img.shields.io/badge/license-ISC-blue.svg)](https://rawgit.com/imqueue/core/master/LICENSE)\n\nSimple job queue using JSON messaging for managing backand background jobs.\nBacked up by Redis.\n\n# Features\n\nBased on @imqueue/core it provides Job Queue functionality including:\n - **Safe job processing** - no data loss!\n - **Fast processing** - by events, not timers, low resource usage.\n - **Supports gzip compression** for job data (decrease traffic usage, but \n   slower).\n - **Concurrent workers model supported**, the same queue can have multiple\n   consumers with no data loss and natural load-balancing.\n - **Scheduleable jobs** - jobs can be delayed by specified time,\n   granularity - milliseconds.\n - **Job expiration supported** - job can live forever or specified time,\n   granularity - milliseconds.\n - **Publisher/Worker/Both** models of work with queues supported.\n - **TypeScript included!**\n\n# Requirements\n\nSee requirements for @imqueue/core\n\n# Install\n\n~~~bash\nnpm i --save @imqueue/job\n~~~\n\n# Usage\n\n~~~typescript\nimport JobQueue, { JobQueuePublisher, JobQueueWorker } from '@imqueue/job';\n\n// Standard job queue (both - worker and publisher) example\nnew JobQueue\u003cstring\u003e({ name: 'TestJob' })\n    .onPop(job =\u003e console.log(job))\n    .start().then(queue =\u003e queue\n        .push('Hello, world!')\n        .push('Hello, world after 1 sec!', { delay: 1000 })\n        .push('Hello, world after 2 sec!', { delay: 2000 })\n        .push('Hello, world after 5 sec!', { delay: 5000 })\n        .push('Hello, world after 10 sec!', { delay: 10000 }),\n    );\n\n// Job queue publisher-only example\nnew JobQueuePublisher\u003cstring\u003e({ name: 'CustomTestJob' })\n    .start().then(queue =\u003e queue\n        .push('Hello, job world!')\n        .push('Hello, job world after 1 sec!', { delay: 1000 })\n        .push('Hello, job world after 2 sec!', { delay: 2000 })\n        .push('Hello, job world after 5 sec!', { delay: 5000 })\n        .push('Hello, job world after 10 sec!', { delay: 10000 }),\n    );\n\n// Job queue worker only example\nnew JobQueueWorker\u003cstring\u003e({ name: 'CustomTestJob' })\n    .onPop(job =\u003e console.log(job))\n    .start()\n    .catch(err =\u003e console.error(err));\n~~~\n\n## License\n\n[ISC](https://rawgit.com/imqueue/job/master/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimqueue%2Fjob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimqueue%2Fjob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimqueue%2Fjob/lists"}