Перейти к основному содержимому

Задачи обслуживания

Pimcore позволяет запускать запланированные задачи обслуживания (Maintenance Tasks). Это дает возможность периодически выполнять такие действия, как очистка данных. Очень важно, чтобы cron-задача для обслуживания была настроена правильно, см. руководство по установке.

Регистрация новой задачи обслуживания

Чтобы зарегистрировать новую задачу обслуживания, создайте класс и имплементируйте интерфейс Pimcore\Maintenance\TaskInterface. Затем зарегистрируйте ваш класс в сервис-контейнере Symfony с тегом pimcore.maintenance.task и атрибутом type:

App\Maintenance\MyMaintenanceTask:  
tags:
- { name: pimcore.maintenance.task, type: my_maintenance_task }

После этого Pimcore будет вызывать вашу задачу при выполнении cron-задачи обслуживания. Управление интервалами и временем выполнения внутри самой задачи вам необходимо реализовать самостоятельно.

Регистрация задачи обслуживания с использованием отдельного транспорта Symfony Messenger

Сначала выполните шаги, описанные выше, а затем добавьте свойство messengerMessageClass к вашему тегу, как показано в примере ниже. В этом случае Pimcore обеспечит отправку данного конкретного сообщения в шину сообщений (messenger bus).

App\Maintenance\MyMaintenanceTask:  
tags:
- { name: pimcore.maintenance.task, type: my_maintenance_task, messengerMessageClass: '\App\Messenger\MyMaintenanceMessage' }

Пожалуйста, имейте в виду: Вам необходимо самостоятельно реализовать как класс сообщения (message), так и класс обработчика (handler). После этого вы сможете настроить маршрутизацию вашего сообщения на соответствующий транспорт.

Для ознакомления с полным примером вы можете изучить класс \Pimcore\Messenger\ScheduledTaskMessage и способы его использования.


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.