Задание Cron запущено, но обновления модулей не проверены - как автоматизировать?
Я настроил скрипт для запуска как часть моего cron.ежедневные задачи, и протестировал сценарий.
В моем отчете о состоянии говорится, что cron был правильно запущен сценарием, поэтому я рад, что это произойдет.
Тем не менее, я зашел на страницу доступных обновлений, и там все еще написано, что я последний раз проверял 17 часов назад - разве это не часть cron?
Есть ли способ включить это в автоматизированные проверки и отчеты?
1 answers
Просматривая код update_cron(), я замечаю, что функция проверяет наличие обновлений, если нет кэшированных данных или если интервал обновления прошел.
function update_cron() {
$frequency = variable_get('update_check_frequency', 1);
$interval = 60 * 60 * 24 * $frequency;
// Cron should check for updates if there is no update data cached or if the
// configured update interval has elapsed.
if (!_update_cache_get('update_available_releases') || ((time() - variable_get('update_last_check', 0)) > $interval)) {
update_refresh();
_update_cron_notify();
}
}
По умолчанию обновления проверяются один раз в день; если вы хотите, чтобы Drupal проверял наличие обновлений дважды в день, вы можете изменить значение переменной "update_check_frequency" на 0,5.
Поскольку страница настроек не позволяет задать значение ниже 1, вы можете изменить значение этой переменной с помощью variable_get('update_check_frequency', 0.5)
. Крон задания нужно выполнять не реже двух раз в день, иначе трюк не сработает.
Вы также можете аннулировать кэш и заставить update.module проверять наличие обновлений при следующем запуске задач cron, посетив страницу со списком всех модулей и нажав кнопку "Сохранить"; в качестве альтернативы вы можете вызвать update_invalidate_cache().