В общем случае такие задачи не стоит даже в кроне выполнять. Обьясню на примере.
Есть задача ежедневного списания баланса. Она должна быть выполнена 1 раз в день примерно в 1:00 по москве.
Представим что сервер заглох именно в 1:00 по москве, значит списания не будет и клиенты получат 1 день халявы, ну или сервер перезагружался 5 раз и с них спишется 5 раз за день.
В общем стоит все хранить в бд приложения и запускать фоновую задачу которая отрабатывает и записывает время последнего своего запуска, а при следующем запуске проверяет это время.
При таком подходе все будет работать как часы.