Jump to content

Планирование действий и массовая обработка

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

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

Действия, запланированные с помощью правил

Когда действия добавляются на вкладку правила "Действия", у вас есть возможность либо выполнить это действие в режиме реального времени, либо запланировать для выполнения в будущей дате/времени. Любые действия можно планировать на будущее (включая пользовательские действия) при добавлении их в правило.

Ключевые фразы расписания

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

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

И поскольку обычно необходимо иметь один экземпляр запланированного действия в очереди для нескольких объектов в системе (например пользователей), токены могут быть использованы в ключевой фразе для её изменения сущностью. Например, ключевая фраза "Отправить e-mail сообщение для пользователя:[member:id]" использует токен [member:id], который будет заменён на ID пользователя (если предположить, что токен доступен в списке токенов для события). Это гарантирует, что каждый член может одновременно иметь свой отдельный экземпляр действия, запланированного в очереди, но только один для каждого пользователя. Любое количество токенов может использоваться в ключевой фразе, чтобы сделать ее уникальной для своего приложения.

Действия, запланированные вручную

Вы можете вручную запланировать выполнение пользовательского действия в заранее настроенную дату и время. Пользовательские действия могут быть запланированы вручную, чтобы происходить на регулярной основе или в качестве одноразового события. Чтобы запланировать пользовательское действие вручную, нажмите стрелку раскрывающегося списка для пользовательского действия в меню "Пользовательские действия" и выберите вариант "Запланировать вручную".

Повторяющиеся запланированные действия

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

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

Массовая обработка

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

Примечание: Когда вы выбираете аргумент массовой обработки, вы можете установить ограничение количества записей в системе, которые будут обрабатываться при каждом запуске крона, пока цикл обработки не будет завершен.