PASS exactly the 5 automation jobs are scheduled [crm:daily, coi:reminders, ratecon:reminders, tracing:requests, invoice:reminders] PASS crm:daily runs at '30 7 * * *' in AUTOMATION_TIMEZONE (UTC) [30 7 * * * UTC] PASS crm:daily cannot start twice; lock released after 120 min (not 24 h) [120] PASS crm:daily runs in the foreground (one after the other) PASS coi:reminders runs at '0 8 * * *' in AUTOMATION_TIMEZONE (UTC) [0 8 * * * UTC] PASS coi:reminders cannot start twice; lock released after 120 min (not 24 h) [120] PASS coi:reminders runs in the foreground (one after the other) PASS tracing:requests runs at '0 9 * * *' in AUTOMATION_TIMEZONE (UTC) [0 9 * * * UTC] PASS tracing:requests cannot start twice; lock released after 120 min (not 24 h) [120] PASS tracing:requests runs in the foreground (one after the other) PASS invoice:reminders runs at '0 10 * * *' in AUTOMATION_TIMEZONE (UTC) [0 10 * * * UTC] PASS invoice:reminders cannot start twice; lock released after 120 min (not 24 h) [120] PASS invoice:reminders runs in the foreground (one after the other) PASS ratecon:reminders runs at '15 * * * *' [15 * * * * UTC] PASS ratecon:reminders cannot start twice; lock released after 30 min (not 24 h) [30] PASS ratecon:reminders runs in the foreground (one after the other) PASS AUTOMATION_TIMEZONE=UTC: no two jobs due in the same minute over 2 days PASS AUTOMATION_TIMEZONE=UTC: each daily job once a day, Rate Confirmation 24 times a day [{"crm:daily":2,"coi:reminders":2,"ratecon:reminders":48,"tracing:requests":2,"invoice:reminders":2}] PASS AUTOMATION_TIMEZONE=America/Toronto: no two jobs due in the same minute over 2 days PASS AUTOMATION_TIMEZONE=America/Toronto: each daily job once a day, Rate Confirmation 24 times a day [{"crm:daily":2,"coi:reminders":2,"ratecon:reminders":48,"tracing:requests":2,"invoice:reminders":2}] PASS AUTOMATION_TIMEZONE=Asia/Kolkata: no two jobs due in the same minute over 2 days PASS AUTOMATION_TIMEZONE=Asia/Kolkata: each daily job once a day, Rate Confirmation 24 times a day [{"crm:daily":2,"coi:reminders":2,"ratecon:reminders":48,"tracing:requests":2,"invoice:reminders":2}] PASS lock store is the database table cache_locks PASS no lock: the job may start PASS while a run holds the lock, a second start is refused (no double reminders) PASS left-over lock expires after 30 minutes [1799 s] PASS 31 minutes later the lock is gone and the job runs again ALL PASSED