Я пытаюсь настроить скрипт Python для запроса БД обо всех обновлениях за последние 5 минут. Учитывая количество обновлений, оно должно быть как можно более точным (наши записи имеют временные метки с точностью до микросекунды). Я рассматриваю два способа решения этой проблемы - первый - использовать cron. Однако это зависит от того, что cron достаточно точен, чтобы всегда работать на точно так же интервал каждый раз, когда он запускается. Поэтому, если время первого выполнения - 00: 00: 00.123456789, его нужно будет запустить снова в 00: 05: 00.123456789. В противном случае существует вероятность пропуска записей в промежутках между ними.
Другой вариант - найти способ «привязать» sql-запрос к ближайшей минуте с округлением в меньшую сторону. Но если я могу использовать cron, я бы предпочел сделать это, чтобы все было как можно проще.
У меня были скрипты cron, которые по той или иной причине должны были выводить время, и я видел, что они иногда опаздывают на секунду (только когда-либо отслеживались до секунды). Я не знаю, связано ли это с Cron или с вариациями в том, сколько времени требуется для загрузки и выполнения скрипта. Я полагаю, что и того и другого понемногу. В любом случае, полагаться на то, что запрос sql будет выполняться в одну и ту же микросекунду, не сработает.
Вы можете заставить ваш скрипт python получить текущее время, а затем округлить его до ближайшего 5-минутного интервала. Например, если он получает текущее время как 00: 05: 03.123, просто отбросьте секунды и запросите на основе 00:05:00 и вернитесь к 00:00:00.
Либо так, либо вы можете записать временную метку последней записи, а затем в следующий раз запросить с текущего времени обратно к этой временной метке.
Редактировать: убрали первое предложение второго абзаца - там это не имело смысла.