{"id":18348693,"url":"https://github.com/averagehelper/job-queue","last_synced_at":"2025-04-09T23:28:43.198Z","repository":{"id":113951333,"uuid":"415466582","full_name":"AverageHelper/job-queue","owner":"AverageHelper","description":"A simple queue for processing asynchronous tasks sequentially. (Read-only Git mirror)","archived":false,"fork":false,"pushed_at":"2024-02-19T23:07:50.000Z","size":481,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-15T14:54:00.220Z","etag":null,"topics":["mirror"],"latest_commit_sha":null,"homepage":"https://git.average.name/AverageHelper/job-queue","language":"TypeScript","has_issues":false,"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/AverageHelper.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-10-10T02:21:34.000Z","updated_at":"2023-12-17T05:03:45.000Z","dependencies_parsed_at":"2024-12-23T19:33:24.537Z","dependency_job_id":null,"html_url":"https://github.com/AverageHelper/job-queue","commit_stats":{"total_commits":12,"total_committers":1,"mean_commits":12.0,"dds":0.0,"last_synced_commit":"dc0183fc0812ae5ecdccf59e31433d581a020f37"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2Fjob-queue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2Fjob-queue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2Fjob-queue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2Fjob-queue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AverageHelper","download_url":"https://codeload.github.com/AverageHelper/job-queue/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248128675,"owners_count":21052443,"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":["mirror"],"created_at":"2024-11-05T21:18:50.496Z","updated_at":"2025-04-09T23:28:43.164Z","avatar_url":"https://github.com/AverageHelper.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# job-queue\n\nA simple queue for processing asynchronous tasks sequentially.\n\n## Dependencies\n\nThis project requires [NodeJS](https://nodejs.org/) (version 16 or later).\nTo make sure you have them available on your machine,\ntry running the following command:\n\n```sh\n$ node -v\nv16.6.2\n```\n\n## Installation\n\n```sh\n$ npm install @averagehelper/job-queue\n```\n\n## Usage\n\n```ts\nimport { useJobQueue } from \"@averagehelper/job-queue\";\n\n// Define your job type\ninterface Job {\n\tid: string;\n\tproperty1: string;\n\tproperty2: string;\n}\n\nasync function processJob(job: Job): Promise\u003cvoid\u003e {\n\t// Do something with your job\n}\n\nconst queue = useJobQueue\u003cJob\u003e(\"thing-queue\"); // Create or retrieve a job queue\nqueue.process(processJob); // Add a processor function\n\n// Handle queue event handlers\nqueue.on(\"start\", () =\u003e {\n\tlogger.debug(\"thing-queue has started processing jobs.\");\n});\n\nqueue.on(\"error\", (error: unknown, failedJob: Job) =\u003e {\n\tlogger.debug(`Job ${failedJob.id} failed with error`, error);\n});\n\nqueue.on(\"finish\", () =\u003e {\n\tlogger.debug(\"thing-queue has finished processing all jobs.\");\n});\n\n// Add jobs to process\nqueue.createJob({ property1, property2 });\nqueue.createJobs([job1, job2]);\n```\n\n## Contributing\n\nWe welcome contributions of all sorts!\n\n1.  Fork it!\n2.  Create your feature branch: `git checkout -b my-new-feature`\n3.  Add your changes: `git add .`\n4.  Commit your changes: `git commit -am 'Add some feature'`\n5.  Push to the branch: `git push origin my-new-feature`\n6.  Submit a pull request :sunglasses:\n\nThis project lives primarily at [git.average.name](https://git.average.name/AverageHelper/job-queue). A read-only mirror also exists on [GitHub](https://github.com/AverageHelper/job-queue). Issues or pull requests should be filed at [git.average.name](https://git.average.name/AverageHelper/job-queue). You may sign in or create an account directly, or use one of several OAuth 2.0 providers.\n\n## Authors\n\n- [**AverageHelper**](https://git.average.name/AverageHelper) - _Initial work_\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faveragehelper%2Fjob-queue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faveragehelper%2Fjob-queue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faveragehelper%2Fjob-queue/lists"}