Ранее в Drupal 6 был файл с кодом
/**
* @file
* Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).
*/
include_once './core/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
my_function();
Файл дергался из crontab по расписанию и запускал функцию my_function().
При переезде на Drupal 11 (и, похоже эта ситуации с 8-ой версии) такая конструкция вызывает ошибку, ибо в bootstrap нет класса "DRUPAL_BOOTSTRAP_FULL" и нет функции "drupal_bootstrap".
Как правильно реализовать этот функционал, не используя системный cron?
Комментарии
я почти всегда делаю отдельный роут и туда функцию. Так проще следить.
Можете дать пример такой конструкции?
а что у вас хостинги не совместимые с друпалом? в нормальном хостинге можно задать cron. например
/usr/local/bin/php8.3 ~/mysite.ru/vendor/bin/drush.php cron
или вызываете скрипт
/bin/bash ~/mysite.ru/automatic_updates_sh/checkforupdates.sh
Хостинг вполне справляется и cron задан на хостинге в crontab.
Но Drupal 11 на него отвечает ошибкой.
При том, что на Drupal 6 ошибок нет.
если просто запускать скрипты можно так https://www.drupal.org/project/devel_php
Наверное, самый правильный вариант для вашего сценария, создать свою drush command в своём модуле и вызывать её через drush в системном cron с нужной периодичностью.
Спасибо, так и сделал.
Drush 13 - еще тот квест: http://xandeadx.ru/blog/drupal/1053