Иконка ресурса

CLI Job Runner 1.5.0

Нет прав для скачивания
Совместимость с XenForo
  1. 2.1
Видимый копирайт
Нет
Этот плагин отключает запускаемый браузером job runner и реализует запускаемый CLI job runner для использования с Unix cron.

Требования

Этот плагин требует PHP 5.4 и выше и был протестирован на XenForo 2.0.x и 2.1.х

Установка

Установка в соответствии с обычной установкой плагинов.

Примечание: после того, как это дополнение установлено и активировано, запланированные задачи больше не будут выполняться - поэтому завершение оставшихся шагов установки имеет решающее значение для обеспечения нормальной работы вашего форума.

Во-первых, вы должны проверить, что ваш job runner функционирует-выполните следующую команду из вашего CLI:

Bash:
$ php <path to your forum root>/cmd.php xf:run-jobs

Например, если ваша корневая папка находится /srv/www/xenforo/community , то команда будет выглядеть так:

Bash:
$ php /srv/www/xenforo/community/cmd.php xf:run-jobs

Выполнение этой команды приведет к выполнению всех невыполненных заданий, а затем завершится сообщением о том, есть ли еще задания, ожидающие выполнения или нет. При выполнении этой команды из cron рекомендуется использовать флаг --quiet (или -q )для подавления вывода.

После того, как вы счастливы, что job runner функционирует правильно, вам нужно будет создать свою собственную cron задачу, чтобы запустить его по расписанию по вашему выбору.

Подход №1 с помощью crontab:

Настоятельно рекомендуется запустить задачу крона от имени пользователя веб-сервера, чтобы предотвратить возможные проблемы с разрешениями.

Например, на Ubuntu с пользователем www-data, установите задачу cron, выполнив следующую команду:

Bash:
$ sudo crontab -u www-data -e

Отредактируйте файл crontab и добавьте:

Bash:
    *       *       *       *       *       php /path/to/your/forum/root/cmd.php --quiet xf:run-jobs

Сохранить файл crontab.

Подход №2 с использованием cron.d:

Вместо использования crontab некоторые дистрибутивы Linux создают известный каталог, который автоматически проверяется на выполнение задач cron. В случае Ubuntu, вы можете создавать файлы в /etc/cron.d где указывается расписание, пользователь, выполняющий команду, и сама команда.

Создайте файл в /etc/cron.d со следующим содержанием:

Bash:
* * * * * webserver-user php /path/to/your/forum/root/cmd.php --quiet xf:run-jobs

... где webserver-user изменяется на имя пользователя, от имени которого работает ваш веб-сервер, и измените путь к корню вашего форума.

Опять же, используя наш предыдущий пример, где пользователь www-data и наш корень форума
/srv/www/xenforo/community , я бы выполнил следующую команду для создания файла cron:

Bash:
echo "* * * * * www-data php /srv/www/xenforo/community/cmd.php --quiet xf:run-jobs" | sudo tee -a /etc/cron.d/xenforo

Оба варианта (crontab и cron.d) будет выполнять работу job каждую минуту, проверяя невыполненные задания для запуска.

По умолчанию job runner будет выполняться не более 30 секунд, выполняя невыполненные задания до тех пор, пока в очереди больше нет выполняемых заданий.

Конфигурация

Можно настроить максимальное время выполнения job runner, указав параметр --time=[TIME] в командной строке.

Например, чтобы разрешить выполнение задания в течение максимум 45 секунд:

Bash:
$ php <path to your forum root>/cmd.php --time=45 xf:run-jobs

Не рекомендуется разрешать выполнение job runner дольше, чем период между триггерами крона. Например, приведенный выше пример задачи cron будет выполнять job runner каждую минуту, поэтому установка максимального времени выполнения более 60, как правило, плохая идея.

Если вы предпочитаете запускать задачу крона не так часто, как раз в минуту, вы можете настроить задание крона на свое усмотрение

Например, чтобы запускать задачу крона каждые 5 минут, позволяя job runner выполняться не более 4 минут, используйте следующую команду крона:

Bash:
*/5       *       *       *       *       php <path to your forum root>/cmd.php --quiet --time=240 xf:run-jobs

Для дальнейшей настройки выполнения задания вы также можете настроить максимальное время, разрешенное для выполнения каждого задания.
Это настроено через конфигурацию config.php

PHP:
$config[jobMaxRunTime'] = 8;

Параметр jobMaxRunTime настраивает время в секундах, в течение которого задания обработки могут выполняться, прежде чем они будут приостановлены для дальнейшей обработки на другом обходе, если это возможно. Настройка по умолчанию оптимизирована для запускаемого браузером job runner, поэтому для увеличения времени выполнения заданий в среде интерфейса командной строки (CLI) может потребоваться установить более высокое значение.

Вы не должны установить jobMaxRunTime выше, чем 30 секунд, или время, указанное в опции --time . В целом рекомендуется сохранить этот параметр на относительно небольшом значении, чтобы избежать ситуации, когда одно очень длинное задание может препятствовать своевременному выполнению других заданий. Некоторые эксперименты могут потребоваться, чтобы найти оптимальное значение для загрузки сервера и размера форума.
  • Мне нравится
Реакции: Smalesh, grisha2217 и Len
Автор
artscripts
Скачивания
28
Просмотры
1,203
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя artscripts

  • [OzzModz] Alerts Auto-refresh (AJAX)
    [OzzModz] Alerts Auto-refresh (AJAX)
    Автоматическое обновление AJAX предупреждений и счетчиков новых разговоров без перезагрузки страницы
  • [OzzModz] Conversation Read Check Mark
    [OzzModz] Conversation Read Check Mark
    Простой значек, который показывает, что пользователь прочитал переписку
  • Geoblock Registration
    Geoblock Registration
    Блокировка регистраций с использованием базы данных Maxmind GeoLite2

Поделиться ресурсом

Последние обновления

  1. Обновление 1.5.0

    v1.5.0 вносит некоторые внутренние изменения в способ управления файлами очистка кода: нам не...
  2. Обновление 1.3.1

    Новые возможности: реализован отладочный журнал для отслеживания времени выполнения задания...
  3. Обгновление 1.2.0

    Изменения: отключите вычисления для автоматического выполнения задания, чтобы избежать ненужных...
Назад
Сверху Снизу