{"id":13515257,"url":"https://github.com/yerbieinc/yerbie","last_synced_at":"2026-01-16T06:35:06.811Z","repository":{"id":73106088,"uuid":"235926670","full_name":"yerbieinc/yerbie","owner":"yerbieinc","description":"A blazing fast job queue built for ease of use and scalability","archived":false,"fork":false,"pushed_at":"2021-06-03T05:07:13.000Z","size":176,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-01T19:36:13.792Z","etag":null,"topics":["asynchronous","job-queue","job-scheduler","queue","scheduler"],"latest_commit_sha":null,"homepage":"https://www.yerbie.dev","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yerbieinc.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}},"created_at":"2020-01-24T02:24:05.000Z","updated_at":"2023-11-27T19:31:59.000Z","dependencies_parsed_at":"2023-02-27T23:00:45.118Z","dependency_job_id":null,"html_url":"https://github.com/yerbieinc/yerbie","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yerbieinc%2Fyerbie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yerbieinc%2Fyerbie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yerbieinc%2Fyerbie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yerbieinc%2Fyerbie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yerbieinc","download_url":"https://codeload.github.com/yerbieinc/yerbie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246418658,"owners_count":20773934,"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":["asynchronous","job-queue","job-scheduler","queue","scheduler"],"created_at":"2024-08-01T05:01:08.447Z","updated_at":"2026-01-16T06:35:06.759Z","avatar_url":"https://github.com/yerbieinc.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# Yerbie\n![CI](https://github.com/yerbieinc/yerbie/actions/workflows/main-ci.yml/badge.svg)\n![Release](https://github.com/yerbieinc/yerbie/actions/workflows/release.yml/badge.svg)\n\n\nYerbie is a job queue and scheduler backed by Redis. Yerbie is used for:\n\n- Distributing work across threads or machines\n- Scheduling code to run sometime in the future\n- Retrying failures asynchronously\n\n... and more! To learn more about Yerbie, go to the [official Yerbie website](https://www.yerbie.dev).\n\nThis repository contains code for the Yerbie server.\nThe Yerbie server manages job data, queues and job schedules in Redis while exposing an API for clients to interface with Yerbie.\n\n\n## Yerbie API\nThe following describes the Yerbie API with sample HTTP requests. Client libraries will send these requests to interact with Yerbie, however client libraries are still responsible for also handing errors, serializing and deserializing job data, as well as implementing polling and running jobs from the Yerbie server.\n\n### Create Job\nThis creates a job to be scheduled by Yerbie with a certain delay to a specific queue.\n\nBody JSON Parameters:\n- *delaySeconds* - amount of seconds to delay the job before it becomes available in the queue\n- *jobData* - serialized job payload string.\n- *queue* - queue name for which this job should go to.\n- *jobToken* - the client generated job token.\n\n```\ncurl -H \"Content-Type: application/json\" -X POST -d '{JSON_BODY}' localhost:5865/jobs/schedule\n```\n\n**Sample Request**\n\n```\n  curl -H \"Content-Type: application/json\" -X POST -d '{\"jobData\":\"JOB_DATA\",\"delaySeconds\":5,\"queue\":\"high_priority_queue\",\"jobToken\":\"token\"}' localhost:5865/jobs/schedule \n```\n\n**Sample Response**\n```\n  {\"jobToken\":\"token\",\"queue\":\"high_priority_queue\",\"jobData\":\"JOB_DATA\",\"delaySeconds\":5}\n```\n\n### Reserve Job\nThis requests a job from Yerbie to indicate that it is being processed by a client. Yerbie will mark this\njob as running, and the client must tell Yerbie that it has finished with the job, otherwise Yerbie will enqueue\nthe job again after 10 seconds.\n\n```\ncurl -X POST \"localhost:5865/jobs/reserve/{queue_name}\"\n```\n\n**Sample Request**\n\n```\n  curl -X POST \"localhost:5865/jobs/reserve/high_priority_queue\"\n```\n\n**Sample Response**\n\n```\n  {\"delaySeconds\":5,\"jobData\":\"JOB_DATA\",\"queue\":\"high_priority_queue\",\"jobToken\":\"token\"}\n```\n\n### Finish Job\nThis tells Yerbie that the client has finished processing the job. Yerbie will not enqueue the job again.\n\n```\n  curl -X POST \"localhost:5865/jobs/finished/{token}\"\n```\n\n**Sample Request**\n\n```\n  curl -X POST \"localhost:5865/jobs/finished/token\"\n```\n\n**Sample Response**\n\n```\n  {\"jobToken\":\"token\"}\n```\n\n### Delete Job\nThis will delete a job that hasn't already been put onto a queue. If the job is already on a queue, it will **not** be deleted.\n\n```\n  curl -X POST \"localhost:5865/jobs/delete/{token}\"\n```\n\n**Sample Request**\n\n```\n  curl -X POST \"localhost:5865/jobs/delete/token\"\n```\n\n**Sample Response**\n\n```\n  {\"jobToken\":\"token\"}\n```\n\n# Local Development\nSee [DEVELOPING.md](DEVELOPING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyerbieinc%2Fyerbie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyerbieinc%2Fyerbie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyerbieinc%2Fyerbie/lists"}