• Для скачивания файлов Вам необходимо быть зарегистрированным пользователем, иметь 5 полезных сообщений и 5 реакций - состоять в группе Местный !
CLI Job / Cron Runner

Плагин CLI Job / Cron Runner 2.1.1

Расширенный запуск заданий CLI для Unix cron с расширенной поддержкой отладки.
  • Автор Автор Pokschubin™
  • Дата создания Дата создания
Совместимость с XenForo
  1. 2.2
  2. 2.3
Видимый копирайт
Нет
Это дополнение XenForo 2.2 реализует расширенный запуск задания с запуском CLI для использования с Unix cron в качестве замены встроенной
xf:run-jobs
команды, представленной в XF 2.2

Команда вызывается
hg:run-jobs
и выполняет то же самое, что
xf:run-jobs
и делает, но с большим количеством опций и функций.

Характеристики

Основные возможности этого дополнения:
  • позволяет командам обрабатывать задания / cron до 10 минут одновременно, даже если они запускаются каждую минуту из задачи cron (использует файл блокировки для предотвращения параллельного выполнения нескольких заданий) - идеально подходит для повышения производительности заданий на сайтах с высоким трафиком
  • для тестирования и выявления проблем с заданиями и задачами cron доступны обширные выходные данные отладки
  • замена для
    xf:run-jobs
  • команда для перечисления всех невыполненных заданий
    hg:show-jobs
  • команда для перечисления всех задач XF Cron
    hg:show-crons
  • команда для выполнения задачи XF Cron
    hg:run-cron

Требования

Для этого дополнения требуется PHP 7.0 или выше и он был протестирован на XenForo 2.2.0

Установка

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

После установки перейдите на страницу параметров системы и производительности, чтобы изменить параметр запуска запуска задания на "Серверный триггер"

1596700351453.png


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


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

Например, если ваш корневой каталог форума
/srv/www/xenforo/community
, то команда job runner будет:

HTML:
$ php /srv/www/xenforo/community/cmd.php hg:run-jobs

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

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

ПРИМЕЧАНИЕ: если у вас уже настроена задача cron для запуска
xf:run-jobs
, просто отключите ее и замените идентичной задачей, которая выполняется
hg:run-jobs
вместо нее.

Подход № 1 с использованием crontab:

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

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

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

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

HTML:
    *       *       *       *       *       php /path/to/your/forum/root/cmd.php --quiet hg:run-jobs

Сохраните crontab.

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

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

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

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

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

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

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

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

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

Обновление с версии addon v1.x после обновления XenForo до версии v2.2

версия v2.0 этого дополнения изменяет имя команды и максимально допустимое время выполнения. Обратите внимание также, что
--time
опция в версии v1.x была переименована в
--max-execution-time
в соответствии с core job runner, представленным в XF версии v2.2.

Для обновления:
  1. Обновитесь до XF v2.2 RC2 или более поздней версии
  2. Установите версию дополнения v2.0.x
  3. измените запись cron в unix на execute
    hg:run-jobs
    вместо
    xf:run-jobs
  4. если вы используете эту
    --time
    опцию, переименуйте ее в
    --max-execution-time
  5. необязательно: настройте
    --max-execution-time
    параметр на любой срок до 600 секунд (10 минут), чтобы обработка задания занимала столько времени, сколько требуется. Например: позволит исполнителю задания выполняться до 3 минут одновременно
    --max-execution-time=180
Примечание: убедитесь, что у вас включен "Серверный триггер" в настройках администратора системы и производительности.

1598424966903.png


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

Вы можете настроить максимальное время выполнения задания Runner, указав
--max-execution-time=[TIME]
опцию в командной строке.


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

HTML:
$ php <path to your forum root>/cmd.php --max-execution-time=45 hg:run-jobs

Это дополнение использует файлы блокировки, чтобы предотвратить одновременное выполнение нескольких команд запуска заданий, что также позволяет нам запускать команду в течение более длительных периодов времени на загруженных сайтах.

Максимально допустимое время выполнения составляет 10 минут (600 секунд). Команда будет выполняться до тех пор, пока не найдет больше невыполненных заданий, а затем остановится, поэтому время выполнения обычно составляет всего несколько секунд.


Для дальнейшей настройки выполнения вашего задания вы также можете настроить максимальное время, разрешенное для выполнения каждого задания.
Это настраивается с помощью XenForo config.php Вариант:

PHP:
$config['jobMaxRunTime'] = 8;

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

В целом рекомендуется, чтобы этот параметр сохранял относительно небольшое значение, чтобы избежать ситуации, когда одно очень длинное задание может помешать своевременному выполнению других заданий. Может потребоваться некоторое экспериментирование, чтобы найти оптимальное значение для загрузки вашего сервера и размера форума. Если вы сомневаетесь, оставьте значение по умолчанию равным 8 секундам.

Использование

run-jobs
Команда должна выполняться автоматически с использованием задачи cron в соответствии с приведенными выше инструкциями.

Показать задания

hg:show-jobs
Команда выводит список всех ожидающих выполнения заданий, чтобы вы могли видеть, насколько заполнена очередь заданий.

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

Всегда должно отображаться как минимум два задания: основное задание Cron и задание проверки обновления.

Bash:
$ php cmd.php xf:show-jobs            

2 pending jobs found

+----------------+-----------------+----------------------+----------------------+
| Key            | Class           | Next Run             | Last Run             |
+----------------+-----------------+----------------------+----------------------+
| cron           | XF\Job\Cron     | 11-Apr-2019 10:52:01 | 11-Apr-2019 10:52:31 |
| xfUpgradeCheck | XF:UpgradeCheck | 12-Apr-2019 00:12:21 | 10-Apr-2019 21:24:03 |
+----------------+-----------------+----------------------+----------------------+

The current time is: 11-Apr-2019 10:52:31 (UTC+10:00)

Задания для отладки

Существуют обширные средства отладки, помогающие выявлять проблемы с заданиями и задачами Cron.

Для запуска в режиме отладки сначала отключите cron Unix, который автоматически запускает задания (не забудьте снова включить его, как только вы закончите отладку!), А затем используйте параметры детализации (Verbose:
-v
, Very verbose:
-vv
или Debug:
-vvv
) для
hg:run-jobs
команды, чтобы указать уровень вывода для отображенияна консоли.

Вывод выводится на консоль и имеет формат, аналогичный формату, используемому библиотекой Monolog (хотя мы не используем Monolog для генерации вывода).

Например, подробный вариант
-v:

Bash:
$ php cmd.php hg:run-jobs -v
[2019-11-27 23:53:09] XF\Job\Cron: Cron entry XF\Cron\CleanUp::runUserDowngrade executed in 0.01 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Cron entry Hampel\LogDigest\Cron\SendLogs::serverError executed in 0.00 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Cron entry XF\Cron\MemberStats::rebuildMemberStatsCache executed in 0.00 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Cron entry Hampel\Slack\Cron\NotifyLogs::notify executed in 0.03 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Cron entry XF\Cron\Feeder::importFeeds executed in 0.01 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Cron entry XFMG\Cron\RandomCache::generateRandomMediaCache executed in 0.07 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Cron entry XF\Cron\EmailBounce::process executed in 0.00 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Cron entry XF\Cron\Counters::rebuildForumStatistics executed in 0.02 seconds

[2019-11-27 23:53:09] XF\Job\Cron: Job executed in 0.20 seconds

No more runnable jobs pending

Очень подробный вариант
-vv
добавляет контекст, обычно о
JobResult:

Bash:
$ php cmd.php hg:run-jobs -vv
[2019-11-27 23:49:49] XF\Job\Cron: Cron entry Hampel\Slack\Cron\NotifyLogs::notify executed in 0.01 seconds {"entry_id":"slackNotifyServerErrors","cron_class":"Hampel\\Slack\\Cron\\NotifyLogs","cron_method":"notify","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":-1}},"active":true,"next_run":1574898543,"addon_id":"Hampel\/Slack"}

[2019-11-27 23:49:49] XF\Job\Cron: Cron entry Hampel\SparkPost\Cron\MessageEvents::fetchMessageEvents executed in 0.00 seconds {"entry_id":"sparkpostMessageEvents","cron_class":"Hampel\\SparkPost\\Cron\\MessageEvents","cron_method":"fetchMessageEvents","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":19,"1":49}},"active":true,"next_run":1574898543,"addon_id":"Hampel\/SparkPost"}

[2019-11-27 23:49:49] XF\Job\Cron: Job executed in 0.03 seconds {"completed":false,"jobId":2,"continueDate":1574898603,"continueDate_formatted":"2019-11-27 23:50:03 UTC","statusMessage":"Running... Cron entries"}

[2019-11-27 23:49:49] Hampel\SparkPost:MessageEvent: Job executed in 0.83 seconds {"completed":true,"jobId":12,"continueDate":null,"continueDate_formatted":"","statusMessage":""}

No more runnable jobs pending

И, наконец, опция отладки
-vvv
добавляет дополнительную информацию о задании:

Bash:
$ php cmd.php hg:run-jobs -vvv
[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XF\Cron\Feeder::importFeeds executed in 0.01 seconds {"entry_id":"feeder","cron_class":"XF\\Cron\\Feeder","cron_method":"importFeeds","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":2,"1":12,"2":22,"3":32,"4":42,"5":52}},"active":true,"next_run":1574879524,"addon_id":"XF"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XF\Cron\Counters::rebuildForumStatistics executed in 0.02 seconds {"entry_id":"forumStatistics","cron_class":"XF\\Cron\\Counters","cron_method":"rebuildForumStatistics","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":3,"1":13,"2":23,"3":33,"4":43,"5":53}},"active":true,"next_run":1574879584,"addon_id":"XF"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XF\Cron\MemberStats::rebuildMemberStatsCache executed in 0.03 seconds {"entry_id":"memberStatsCache","cron_class":"XF\\Cron\\MemberStats","cron_method":"rebuildMemberStatsCache","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":0,"1":10,"2":20,"3":30,"4":40,"5":50}},"active":true,"next_run":1574880004,"addon_id":"XF"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XF\Cron\Trophy::runTrophyCheck executed in 0.00 seconds {"entry_id":"trophy","cron_class":"XF\\Cron\\Trophy","cron_method":"runTrophyCheck","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":40}},"active":true,"next_run":1574880004,"addon_id":"XF"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XFMG\Cron\Statistics::cacheGalleryStatistics executed in 0.01 seconds {"entry_id":"xfmgCacheStats","cron_class":"XFMG\\Cron\\Statistics","cron_method":"cacheGalleryStatistics","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":10,"1":40}},"active":true,"next_run":1574880004,"addon_id":"XFMG"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XF\Cron\CleanUp::expireTempUserChanges executed in 0.00 seconds {"entry_id":"expireTempUserChanges","cron_class":"XF\\Cron\\CleanUp","cron_method":"expireTempUserChanges","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":42}},"active":true,"next_run":1574880124,"addon_id":"XF"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XFMG\Cron\RandomCache::generateRandomAlbumCache executed in 0.02 seconds {"entry_id":"xfmgGenerateRandomAlbum","cron_class":"XFMG\\Cron\\RandomCache","cron_method":"generateRandomAlbumCache","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":12,"1":42}},"active":true,"next_run":1574880124,"addon_id":"XFMG"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XF\Cron\EmailUnsubscribe::process executed in 0.00 seconds {"entry_id":"emailUnsubscribe","cron_class":"XF\\Cron\\EmailUnsubscribe","cron_method":"process","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":13,"1":43}},"active":true,"next_run":1574880184,"addon_id":"XF"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Cron entry XF\Cron\Ban::deleteExpiredBans executed in 0.01 seconds {"entry_id":"deleteExpiredBans","cron_class":"XF\\Cron\\Ban","cron_method":"deleteExpiredBans","run_rules":{"day_type":"dom","dom":{"0":-1},"hours":{"0":-1},"minutes":{"0":45}},"active":true,"next_run":1574880304,"addon_id":"XF"} {}

[2019-11-27 23:48:03] XF\Job\Cron: Job executed in 0.32 seconds {"completed":false,"jobId":2,"continueDate":1574898543,"continueDate_formatted":"2019-11-27 23:49:03 UTC","statusMessage":"Running... Cron entries"} {"job_id":2,"unique_key":"cron","execute_class":"XF\\Job\\Cron","execute_data":{},"manual_execute":0,"trigger_date":1574879464,"last_run_date":1574879405,"trigger_date_formatted":"2019-11-27 18:31:04 UTC","last_run_date_formatted":"2019-11-27 18:30:05 UTC"}

[2019-11-27 23:48:03] Hampel\SparkPost:MessageEvent: Job executed in 0.90 seconds {"completed":true,"jobId":10,"continueDate":null,"continueDate_formatted":"","statusMessage":""} {"job_id":10,"unique_key":"SparkPostMessageEvents","execute_class":"Hampel\\SparkPost:MessageEvent","execute_data":{},"manual_execute":0,"trigger_date":1574898483,"last_run_date":null,"trigger_date_formatted":"2019-11-27 23:48:03 UTC","last_run_date_formatted":""}

[2019-11-27 23:48:03] Hampel\SparkPost:EmailBounce: Job executed in 0.02 seconds {"completed":true,"jobId":11,"continueDate":null,"continueDate_formatted":"","statusMessage":""} {"job_id":11,"unique_key":"SparkPostEmailBounce","execute_class":"Hampel\\SparkPost:EmailBounce","execute_data":{},"manual_execute":0,"trigger_date":1574898483,"last_run_date":null,"trigger_date_formatted":"2019-11-27 23:48:03 UTC","last_run_date_formatted":""}

No more runnable jobs pending

Отладка пользовательских заданий

Вы можете добавить дополнительную отладку к своим пользовательским заданиям.

Добавьте следующую функцию в свой класс заданий для вызова
logJobProgress
функции нашего класса Logger:

PHP:
    protected function log($message, array $context = [])
    {
        // check to see if we actually have a logger available and abort if not
        if (!isset($this->app['cli.logger'])) return;

        /** @var Logger $logger */
        $logger = $this->app['cli.logger'];
        $logger->logJobProgress($message, $context, $this);
    }

Затем вы можете вызвать
log()
функцию в своем коде задания для отправки информации на консоль, когда выполнение задания выполняется в подробном режиме.

Например, смотрите тестовое задание, включенное в это дополнение
Hampel\JobRunner\Job\TestJob:

PHP:
   public function run($maxRunTime)
    {
        $this->log("About to start test job", $this->data);

        $mail = $this->app->mailer()->newMail();
        $mail->setTo($this->data['email']);
        $mail->setContent(
            "Test job",
            "This is an email sent from a test job"
        );
        $sent = $mail->send();

        $this->log("Sent mail", ['sent' => $sent]);

        return $this->complete();
    }

Приведенный выше код сгенерирует следующий вывод, когда программа выполнения задания находится в режиме отладки:

Bash:
$ php cmd.php hg:run-jobs -vvv
[2019-11-28 00:26:21] Hampel\JobRunner:TestJob: About to start test job {"email":"foo@example.com"} {"job_id":17,"class":"Hampel\\JobRunner\\Job\\TestJob","status_message":"Testing jobs","data":{"email":"foo@example.com"},"execution_time":"0.00"}

[2019-11-28 00:26:21] Hampel\JobRunner:TestJob: Sent mail {"sent":1} {"job_id":17,"class":"Hampel\\JobRunner\\Job\\TestJob","status_message":"Testing jobs","data":{"email":"foo@example.com"},"execution_time":"0.95"}

[2019-11-28 00:26:21] Hampel\JobRunner:TestJob: Job executed in 0.95 seconds {"completed":true,"jobId":17,"continueDate":null,"continueDate_formatted":"","statusMessage":""} {"job_id":17,"unique_key":null,"execute_class":"Hampel\\JobRunner:TestJob","execute_data":{"email":"foo@example.com"},"manual_execute":0,"trigger_date":1574900777,"last_run_date":null,"trigger_date_formatted":"2019-11-28 00:26:17 UTC","last_run_date_formatted":""}

No more runnable jobs pending

При запуске в тихом режиме вывод не будет отображаться - и, что более важно, если этот аддон отключен, код ведения журнала не нужно будет удалять. Важной частью является
if (!isset(\XF::app['cli.logger'])) return;
строка, которая будет прервана, если наш регистратор недоступен.

Отладка пользовательских задач Cron

Используя аналогичный механизм, мы также можем добавлять отладочный код в наши пользовательские задачи Cron:

Добавьте немного другую функцию в свои задачи Cron для вызова
log()
функции нашего класса Logger:

HTML:
   protected static function log($message, array $context = [])
    {
        // check to see if we actually have a logger available and abort if not
        if (!isset(\XF::app['cli.logger'])) return;

        /** @var Logger $logger */
        $logger = \XF::app['cli.logger'];
        $logger->log("XF\Job\Cron", $message, $context);
    }

Затем просто вызовите что-то вроде:
self::log("some message about something happening", ['key' => 'value']);
в вашем коде для вывода информации на консоль, когда выполнение задания выполняется в подробном режиме.

Черта регистратора

Существует также черта, которую вы можете включить в свои классы:
Hampel\JobRunner\Cli\LoggerTrait
которая реализует некоторые базовые функции ведения журнала, которые вы можете вызывать из своего кода:
  • getLogger
  • войти
  • logQuiet (будет отображаться, даже если
    -q
    опция указана для запуска задания) - используйте это только для критических ошибок
  • Логнормальный (будет отображаться без подробностей или выше)
  • logVerbose (будет отображаться только для
    -v
    опции или выше)
  • logVeryVerbose (будет отображаться только для
    -vv
    опции или выше)
  • отладка (будет отображаться, только если
    -vvv
    опция option указана для запуска задания)
Нет необходимости удалять код ведения журнала или отладки из вашего аддона при развертывании - при запуске
hg:run-jobs
в обычном или тихом режиме ни один из выходных данных не отображается, если он не использует logNormal или logQuiet (которые следует использовать только для ошибок).

Отладка задач Cron

Начиная с версии 2.0 beta 3, появились две новые команды для работы с задачами XF cron:

Показать Crons

В
hg:show-crons
команде будут перечислены все ваши активные задачи XF cron

Bash:
$ cmd.php hg:show-crons

19 active cron entries found

+---------------------------+----------------------+--------------------------+
| ID                        | Next Run (UTC+10:00) | Addon                    |
+---------------------------+----------------------+--------------------------+
| forumStatistics           | 29-Sep-2020 06:53    | XF                       |
| emailBounce               | 29-Sep-2020 06:53    | XF                       |
| warningExpiry             | 29-Sep-2020 06:55    | XF                       |
| rebuildSearchForumCache   | 29-Sep-2020 07:00    | XF                       |
| memberStatsCache          | 29-Sep-2020 07:00    | XF                       |
| feeder                    | 29-Sep-2020 07:02    | XF                       |
| cleanUpHourly             | 29-Sep-2020 07:10    | XF                       |
| emailUnsubscribe          | 29-Sep-2020 07:13    | XF                       |
| userGroupPromotions       | 29-Sep-2020 07:20    | XF                       |
| views                     | 29-Sep-2020 07:30    | XF                       |
| trophy                    | 29-Sep-2020 07:40    | XF                       |
| expireTempUserChanges     | 29-Sep-2020 07:42    | XF                       |
| deleteExpiredBans         | 29-Sep-2020 07:45    | XF                       |
| downgradeExpired          | 29-Sep-2020 07:50    | XF                       |
| fileCheck                 | 29-Sep-2020 10:10    | XF                       |
| dailyStats                | 29-Sep-2020 10:30    | XF                       |
| cleanUpDaily              | 29-Sep-2020 13:00    | XF                       |
| activitySummaryEmail      | 30-Sep-2020 00:20    | XF                       |
| sitemap                   | 30-Sep-2020 15:37    | XF                       |
+---------------------------+----------------------+--------------------------+

The current time is: 29-Sep-2020 06:52:05 (UTC+10:00)

Вы можете указать три параметра командной строки:
  • -a
    или
    --all
    показывает все задачи cron, включая отключенные задачи
  • -m
    или
    --method
    включает
    class::method
    в себя для каждой задачи cron
  • -s
    или
    --sort
    указывает столбец сортировки для списка (дата, идентификатор или дополнение)
Вы можете использовать этот инструмент для быстрого определения идентификатора задачи cron, которую вы хотите запустить, которую вы затем используете в другой новой команде ...

Запустите Cron

hg:run-cron
Команда выполнит задачу XF cron - просто укажите идентификатор cron в качестве аргумента.

Например:
cmd.php hg:run-cron activitySummaryEmail
будет запущена задача cron "Отправить сводку активности по электронной почте".

По умолчанию отключенные задачи cron не могут быть запущены, поэтому вы можете переопределить это, указав параметр
-f
или
--force
в командной строке.

Здесь работают те же флаги детализации - поэтому укажите
-v
,
-vv
или
-vvv
для генерации желаемого уровня вывода.
  • Автор
    Pokschubin™
    Скачиваний
    0
    Просмотры
    201
    Первый выпуск
    Обновление

    Рейтинги

    0 00 звёзд Оценок: 0
    Нет прав для скачивания

    Ещё ресурсы от

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

    1. 2.1.1

      Совместимость с XF 2.3

    Похожие ресурсы

    [OzzModz] Job Runner Manager Pokschubin™
    Позволяет просматривать список текущих заданий и управлять ими
    Скачиваний
    0
    Обновлено
    Назад
    Верх Низ