Задание Cron запущено, но обновления модулей не проверены - как автоматизировать?


Я настроил скрипт для запуска как часть моего cron.ежедневные задачи, и протестировал сценарий.

В моем отчете о состоянии говорится, что cron был правильно запущен сценарием, поэтому я рад, что это произойдет.

Тем не менее, я зашел на страницу доступных обновлений, и там все еще написано, что я последний раз проверял 17 часов назад - разве это не часть cron?

Есть ли способ включить это в автоматизированные проверки и отчеты?

Author: kiamlaluno, 2011-04-28

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().

 2
Author: kiamlaluno, 2011-04-28 01:29:53