Я запустил cron и отменил казнь. Теперь я получаю это сообщение:
Попытка повторно запустить cron, пока он уже запущен.
В Drupal 7 я мог удалить переменную cron_semaphore .
Как добиться того же в Drupal 8?
Теперь он находится в semaphore
таблице с именем ключа "cron". Это можно удалить с помощью drush sqlq "DELETE FROM semaphore WHERE name = 'cron';"
команды.
Или, если вы можете выполнить PHP в среде начальной загрузки Drupal, вы можете запустить строку:
\Drupal::lock()->release('cron');
drush php:eval '\Drupal::lock()->release("cron");'
Спасибо Shawns ответить ..
Казалось, чтобы помочь!
источник
Для Drupal 8 запустить:
источник
Drupal 7 больше не использует переменную cron_semaphore , а блокировку. Смотрите
drupal_cron_run()
, и, в частности, следующие строки, часть этой функции.Портировать эти строки в Drupal 8 довольно просто, поскольку в Drupal 8 есть сервис для получения и снятия блокировки.
Эквивалентный код находится в
Cron::run()
.Если вам нужно разблокировать его на хосте, где вы не можете использовать Drush, как это происходит со мной, для достижения того же с помощью внешнего скрипта, который загружает Drupal, потребуется код, подобный следующему.
Я адаптировал код authorize.php . Я изменил разрешение пользователя, необходимое для запуска сценария, который я поместил в каталог, содержащий файл authorize.php, в файле cron_cleanup.php.
Если вы можете запустить Drush, это станет проще. (См . Ответ @ dman .)
источник
Добрался до этой страницы, когда моя установка D7 застряла. Я выпустил его с помощью
источник
lock_release('cron')
для освобождения блокировки cron.Если вы не можете заставить его работать в Drupal 8 с предложенными выше шагами - возможно, вы используете что-то вроде Redis, и там хранится блокировка cron. В этом случае вы можете прогрессировать с:
источник