Я думаю, что работа cron - хорошая идея. Тем не менее, любой метод, который вы, вероятно, хотели бы иметь каким-либо способом помечать элементы (строки?) Как «обработанные». Ваша задача cron должна искать «необработанные» данные, а не по дате. Это, ИМХО, безопаснее и решит проблему, если по какой-то причине задание не запустится.
У меня есть похожая функция в одном из моих приложений. Тем не менее, это скорее стиль очереди. Задача помещается в очередь из любой части приложения. Рабочий (может быть вызван через cron) проходит через очередь и завершает задачу, помечает ее как «обработку» и затем обрабатывает. Если следующий работник приходит и находит задачу «обработка», он проверяет работника, чтобы убедиться, что он не зомби. Если это так, он убивает его, а затем перезапускает задачу. и т. д. и т. д.
У меня фактически есть одна главная очередь, которая может содержать различные типы задач (уведомления по электронной почте, обновления файлов и т. Д.), Затем рабочий обрабатывает основную очередь в определенные для работы очереди (одна для электронной почты и т. Д.).