Add timeout to background jobs
Add a timeout feature to scheduled background jobs. This should give some jobs a specified timeout, after which the jobs decay.
Some scheduled jobs are run each hour. If the job worker is offline for an extended period of time, a huge backlog of redundant jobs might build up. When the worker starts again it has to go through the huge list of redundant jobs. This causes all kinds of issues, such as rate limiting issues when calling external services because everything is done at once.
The job timeout feature should drop all scheduled jobs which become too old.
- Relevant: https://laravel.com/docs/8.x/queues#time-based-attempts
- Also check whether to use overlapping: https://laravel.com/docs/8.x/queues#preventing-job-overlaps (moved to #373 (closed))
Edited by Tim Visée