Cron работает async?

Так как cron запускается во время пользовательской загрузки, выполняется ли оно async или блокирует запрос до его завершения?

В последнем случае, что лучше всего было бы не слишком долго ждать пользователя. Я хочу сделать несколько вызовов user_delete для каждого запуска cron (как можно больше, без блокировки сайта). Я видел, что у Drupal есть какой-то механизм очереди, но я не видел ни одного документа о том, как он используется.

Solutions Collecting From Web of "Cron работает async?"

Это зависит от того, как вы настраиваете, и вы используете cron.

Если вы включили Run cron every поле в Admin -> Config -> Cron (admin/config/system/cron) то cron будет запущен путем открытия страниц на сайте, и да, это повлияет на загрузку страницы посетителями.

Однако рекомендуется отключить cron на этой странице и настроить задачу cron на вашем сервере. Здесь вы можете прочитать статью о том, как это сделать правильно. В этом случае он не блокирует сайт напрямую, но он все равно частично влияет на посетителей, которые используют сайт во время выполнения.
Это связано с тем, что часто cron будет искать обновления и выполнять другие ресурсоемкие задачи, и будет меньше ресурсов сервера.
По этой причине, если вам нужно запускать cron только один раз два раза в день, вы запускаете его обычно ночью или в другое время, когда у вас мало посетителей.

Наконец, проверьте Elysia Cron, который позволяет вам точно определить, что именно выполняется и как часто – он вызывает выборочно hook_cron() модулей, которые у вас есть на сайте.