Если у вас есть доступ shell / SSH к серверу (Linux), вы можете запустить use run crontab -u www-data -eдля редактирования таблицы cron для веб-пользователя. Вы должны быть в состоянии использовать подробности в приведенной выше ссылке для настройки правильных запусков cron так часто, как вы этого хотите.
Если вы используете общий хостинг без доступа к оболочке, вам нужно будет использовать панель управления вашего веб-хостинга (CPanel, Plesk и т. Д.), Чтобы войти в систему и добавить «запланированное задание». Это обеспечивает веб-интерфейс для вкладок cron, поэтому будут необходимы те же настройки.
Если они недоступны, вам нужно будет обратиться за помощью к вашей хостинговой компании, но есть также бесплатные и платные услуги, которые вы можете использовать для cron.phpудаленного вызова страницы. См. Например, Задание задания Cron .
Посмотрите на модуль Elysia Cron, если вы хотите получить больше от cron в целом - он имеет хорошую документацию и позволяет вам точно контролировать, какие задачи выполняются когда.
Наконец, не забудьте отключить сайт, на котором он работает, когда посетители приходят в Администрирование »Конфигурация» Система »Cron, когда вам удалось настроить это.
У меня есть доступ к оболочке. Я знаю, как настроить работу cron. Так что я это выясню. Но спасибо за обобщение всей информации.
cateye
Но я не понимаю, почему Drupal ведет себя так, как сейчас. Если в базовой конфигурации запланирован запуск cron каждые 3 часа, почему он ждет посетителя?
cateye
1
Думаю об этом. Конечно, у Drupal нет способа запустить задание cron без начальной загрузки. И начальная загрузка происходит, когда посетитель попадает на сайт. Итак, подведем итоги: если вам нужны действительно запланированные задания cron, вы должны настроить их на стороне сервера.
cateye
2
Точно. На сервере ничего не происходит, если кто-то или что-то не работает. По умолчанию Drupal 7 запускает cron, когда пользователи время от времени прибывают, чтобы обеспечить выполнение ключевых задач. Drupal 6 полагался на модуль Cron Бедного Человека, чтобы сделать это при отсутствии надлежащей работы cron ... и почти все в Drupal нуждается в начальной загрузке. Правильная работа cron на сервере, безусловно, лучший вариант.
Джим Киркпатрик
1
ОТВЕТ НИЖЕ описывает , как это исправить. Не этот :(
Томаш Фейфар
13
Drupal 7 включил в свои модули код, который был в Poormanscron , цель которого - точно запускать задачи Cron Drupal на сайте, где невозможно установить задачи Cron, когда пользователь посещает ваш сайт, и каждые X часов (как установлено в страницу, которую вы видели).
Если вы хотите избежать такого поведения, вам просто нужно установить «Run cron every» на «Never»; вопреки тому, что может показаться, это просто влияет на то, что происходит, когда пользователи посещают ваш сайт. [1] Вы по-прежнему можете запускать задачи cron в Drupal из-за пределов Drupal, помня, что в Drupal 7 необходимо вызывать cron.php из-за пределов Drupal, передавая значение, указанное в «Администрирование> Отчеты> Отчет о состоянии».
[1]: Фактически, ни cron.php , ни drupal_cron_run () не проверяют переменную Drupal, используемую на этой странице настроек. Используются только переменные Drupal:
«cron_key», который содержит ключ cron, используемый, чтобы избежать задач cron Drupal, запускается от неавторизованных пользователей
«maintenance_mode», который устанавливается, TRUEкогда сайт находится в режиме обслуживания
"cron_last", который содержит отметку времени, когда задачи cron запускались в последний раз
Единственная трудность заключается в том, что время выполнения задания cron истекает при каждом просмотре страницы, и вы даже не можете войти как администратор, чтобы отключить ее! вздох ... я разберусь, но приятно знать, что его можно отключить, как только я туда
Да, я быстро решил эту проблему, настроив монитор работоспособности Montastic, который «проверяет» URL активации cron каждые 6 часов ...
Drupal 7 включил в свои модули код, который был в Poormanscron , цель которого - точно запускать задачи Cron Drupal на сайте, где невозможно установить задачи Cron, когда пользователь посещает ваш сайт, и каждые X часов (как установлено в страницу, которую вы видели).
Если вы хотите избежать такого поведения, вам просто нужно установить «Run cron every» на «Never»; вопреки тому, что может показаться, это просто влияет на то, что происходит, когда пользователи посещают ваш сайт. [1] Вы по-прежнему можете запускать задачи cron в Drupal из-за пределов Drupal, помня, что в Drupal 7 необходимо вызывать cron.php из-за пределов Drupal, передавая значение, указанное в «Администрирование> Отчеты> Отчет о состоянии».
[1]: Фактически, ни cron.php , ни drupal_cron_run () не проверяют переменную Drupal, используемую на этой странице настроек. Используются только переменные Drupal:
TRUE
когда сайт находится в режиме обслуживанияисточник