{"repo":"AbhinavXJ/WorkQueue","free":true,"listed":false,"github":"https://github.com/AbhinavXJ/WorkQueue","clone":"git clone https://github.com/AbhinavXJ/WorkQueue.git","description":"A Distributed Background Task Processing System written in Go","language":"Go","stars":58,"topics":["background-jobs","golang","redis","task-manager","task-scheduler"],"license":null,"category":"databases-storage","readme_excerpt":"WorkQueue A Distributed Background Task Processing System written in Go, using Redis for job queuing. High level overview What's the need for this? This system is designed to handle the processing and execution of background tasks concurrently to improve user experience. Example: When a user signs in to your website and clicks the login button, you might want to send them a welcome email. If that email task is part of the API call, the user would have to wait until the email is sent. Instead, you can add the \"send email\" task to WorkQueue and let it handle the execution in the background. Note: This is built to be modular — any type of job can be added to it, not just sending emails. You just need to add the logic for that job as described below. Services This repo provides two independent services: 1. Producer Provides a /enqueue route to add your jobs/tasks. How to add a job? - Send an HTTP POST request to the exposed /enqueue route on this URL: workqueue-producer - It accepts a task in this format (JSON): Example: An inbuilt task the system supports is sending an email. Its JSON request would look like this: - type - REQUIRED. Tells the producer the type of job being added to the queue. - Retries - Number of times the system should try to enqueue the job if it fails. - Payload - Contains details about the task in key-value pairs (Note: you can add any type/number of key-value pairs inside the payload, as the backend is built to flexibly accept all types). This is the Go st","default_branch":null,"files":null,"tree":[],"storefront":"/r/AbhinavXJ","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/AbhinavXJ/WorkQueue/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}