Cron
В фреймворке Medusa cron-задачи настраиваются на уровне Docker-окружения: расписание задаётся в файле
.docker/etc/crontab, а служба cron запускается внутри контейнера web.
Добавление задачи
Откройте файл .docker/etc/crontab и добавьте задачу в формате классического crontab,
например:
*/10 * * * * www-data /usr/local/bin/php /var/www/html/app/cli/cron/check_mails.php >> /var/log/cron.log 2>&1
Подготовка PHP-скрипта
В примере ниже используется каталог www/app/ как пример пользовательского каталога. При другой настройке
автозагрузчика путь к пользовательским CLI-скриптам будет отличаться.
require_once __DIR__ . '/../../../medusa/index.php';
use Medusa\Mail\Mail;
$mail = new Mail('vadim.valeev@mail.ru', 'Cron check', 'Задача выполнена');
$mail->send();
Применение изменений
После каждого изменения файла .docker/etc/crontab не забывайте пересобирать контейнер, так как crontab
регистрируется на этапе сборки образа:
docker compose up -d --build