Задачи обслуживания
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 и способы его использования.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.