общество семья самит

Cron запустил задачу дважды: как flock не даёт наложиться двум копиям скрипта

Задача в crontab стоит каждые пять минут. Обычно она укладывается в две. Ночью база отвечала дольше, запуск ещё не закончился — и cron спокойно стартовал следующий.

В логе два START с разницей в доли секунды, два одинаковых отчёта, два конкурирующих UPDATE. Никакого «бага cron»: расписание сработало ровно так, как написано.Ниже воспроизведём это на обычном Linux, закроем гонку через flock из util-linux, сравним режимы «пропустить» и «подождать», и покажем тот же приём из Python через fcntl.flock.

DMCA