The Queue module provides a robust, Redis-based job queue for the Tinh Tinh framework, supporting job scheduling, rate limiting, retries, concurrency, delayed jobs, priorities, and more.
go get -u github.com/tinh-tinh/queue/v2
- Redis-Based: Robust persistence and distributed processing.
- Delayed Jobs: Schedule jobs to run after a delay.
- Cron Scheduling: Schedule and repeat jobs using cron patterns.
- Rate Limiting: Control job processing rate.
- Retries: Automatic retry on failure.
- Priority: Job prioritization.
- Concurrency: Multiple workers per queue.
- Pause/Resume: Temporarily stop and resume job processing.
- Crash Recovery: Recovers jobs after process crashes.
- Remove on Complete/Fail: Clean up jobs after handling.
import "github.com/tinh-tinh/queue/v2"
queueModule := queue.ForRoot(&queue.Options{
Connect: &redis.Options{
Addr: "localhost:6379",
DB: 0,
},
Workers: 3,
RetryFailures: 3,
})
Or via factory:
queueModule := queue.ForRootFactory(func(ref core.RefProvider) *queue.Options {
return &queue.Options{ /* ... */ }
})
userQueueModule := queue.Register("user") // uses default/global options
// In your service or controller:
userQueue := queue.Inject(module, "user")
We welcome contributions! Please feel free to submit a Pull Request.
If you encounter any issues or need help, you can:
- Open an issue in the GitHub repository
- Check our documentation
- Join our community discussions