Как лучше организовать выполнение скриптов по расписанию?
Есть проект на php.
Есть задачи которые необходимо выполнять в фоне, в заданное время в будущем или циклично о расписанию.
С цикличными задачами легко справляется cron, а как быть с разовыми задачами?
Рассматривал rabbitmq, но нагуглил, что у него схема работы последовательная в очереди или создавать кучу очередей.
Пока не понял это то, что мне нужно или нет, поэтому, прошу помощь зала ) Может у кого то есть более интересная мысль.
создать таблицу в бд со столбцами: задача, время выполнения
сделать скрипт который будет выбирать из нее задачи со временем меньше текущего
и выполнять
после выполнения можно удалить запись если задача была одноразовая или установить время следующего запуска
Сделайте еще одну задачу крон - которая будет каждый час (или минуту или 10 минут..., как вам угодно) дёргать одну и ту же команду.
А в этой команде - доставайте таски из БД к примеру. В БД - передавайте что нужно вызывать и откуда и какие параметры передавать.
Таска сделана - статус изменили на done - больше не будет дёргаться эта таска, или удаляйте таску из очереди из БД.
Таски накопились - крон по одному их выполнил. Тасков нету - крон просто проверяет на наличие тасков.