Main benefit is infrastructure as code. Your scheduling is all defined OO and versioned as such and deployed as such.

This also puts cronjobs in the management domain of developers versus the infrastructure team depending on your environment. This also keeps the ops team from adjusting any docker configs to manage crons or ansible / deployment solution configs to maintain cron schedules

You still have a cron running every minute to run just one scheduler script that may fire off many other schedulers which subsequently queue jobs to be ran by workers.

I only had it up on one monitor with synergy kvm between my hackintosh and it. There’s not enough graphical power to drive both well especially with the computing power available to the 2015 model considering new OS demands and all of the CPU vulnerability patches that have resulted in performance penalty over performance penalty. Most of the monitors were driven by the hackintosh

Coming from a large SaaS application with lots of business logic wrapped in atomic operations, I would also recommend using the transaction closure that way you don’t have the accident of an exception keeping an open transaction or improper handling of transactions in code. It also nicely wraps all of the logic that needs to happen in the transaction inside the closure itself. You can also return a value from the closure of which you expect to see before pushing a job on the queue if you so need to

Picture is slightly old, the monitors are all running off of the hackintosh tower and the older laptop was a work laptop which is now replaced with a 2019 MBP of which I have a 2019 MBP for personal projects as well