| In a previous company, I used the in-house job scheduler. Despite some bugs and lack of documentation it did what we asked for: schedule jobs according schedules and timezones, and handle dependencies. Now I'm working for another company, we have the same need: - Orchestrate hundreds of jobs - Some need to start as soon as their dependencies are ready - Others need to start according to timezone-based (and possibly dependencies) - Notification on failures - Make jobs fail if their dependencies are not ok after a given time - Force a job status (i.e. set it "ok" even if it failed) - Reasonable access control - And if possible a nice dashboard! While these requirements seem standard to me, I cannot find any acceptable solution: - Cron is cool for the simplest things, nothing more - Rundeck is nice for simple workflows, but not for complex dependencies - I'm tinkering with SOS-Berlin Job Scheduler for days now, and I cannot find proper ways to orchestrate my dependencies - Control-M looks over priced and certainly not deployable without months of project planing and contract negotiation - Luidgi and Airflow are too much focused on data workflows, not on generic job scheduling What are you using? :) |
- https://github.com/cronboy/cronboy
- https://cronboy.com/
It doesn't fit needs of @pmchorus company, but is useful for simpler cases when you need something more efficient than cron and more accurate than queue delayed jobs. (Example: we use it for sending triggered email deliveries, where batch processing of letters using cron is not possible, because of amount of letters and cron schedule limit)
The idea is that you schedule job on specified time and cronboy invokes it via http and execute it on your server.
Features:
- Seconds accuracy of execution
- Statistics on invoked jobs
- Secure execution of your code
- Retrying if job failed
- Laravel friendly facade api