Автоматизация
Автоматизация Rudel не дает временным песочницам накапливаться бесконечно. Одно ежечасное событие WP-Cron, rudel_scheduled_cleanup, может:
- выполнять политику очистки (срок действия, возраст и бездействие)
- удалять песочницы со слитыми ветками
- сообщать о песочницах с истекшим или близким к истечению сроком действия
Настройка
Автоматизация считывает эти ключи из параметра rudel_config. Полный список приведен в разделе Конфигурация.
| Ключ | Назначение | По умолчанию |
|---|---|---|
auto_cleanup_enabled |
Запускать политику очистки при каждом событии | 1 |
auto_cleanup_merged |
Также удалять песочницы со слитыми ветками рабочего дерева Git | 0 |
expiring_environment_notice_days |
Сообщать о песочницах, срок действия которых истекает в течение N дней | 0 |
max_age_days |
Ограничение по возрасту для политики очистки | 0 |
max_idle_days |
Ограничение по бездействию для политики очистки | 0 |
default_ttl_days |
Срок действия для новых песочниц | 0 |
С настройками по умолчанию событие запланировано, но удаляет только песочницы с явно заданным истекшим сроком действия, поскольку ограничения по возрасту и бездействию, а также срок действия по умолчанию не заданы.
WP-Cron
При активации событие планируется, а каждый запрос повторно проверяет расписание: событие существует, пока любое из значений auto_cleanup_enabled, auto_cleanup_merged или expiring_environment_notice_days не равно нулю; в противном случае оно удаляется. Деактивация удаляет его.
Команд автоматизации нет. Измените настройки в rudel_config:
wp option update rudel_config '{"auto_cleanup_enabled":1,"max_idle_days":7,"expiring_environment_notice_days":2}' --format=json
wp rudel status
wp rudel status показывает Auto cleanup, Auto cleanup merged, Expiry notice days и Automation scheduled.
Отчеты об истечении срока действия
Если задано expiring_environment_notice_days, каждый запуск собирает песочницы, срок действия expires_at которых истекает в течение указанного количества дней, и передает их действию rudel_after_automation_expiring_environments, разделенными на expiring и expired. Rudel самостоятельно не отправляет уведомления; подключите действие, чтобы уведомлять владельцев.
add_action(
'rudel_after_automation_expiring_environments',
function ( array $report ): void {
foreach ( $report['expiring'] as $sandbox ) {
error_log( $sandbox['id'] . ' expires at ' . $sandbox['expires_at'] );
}
}
);
Запуск вручную
Для детерминированных локальных запусков или запусков CI используйте ручную очистку:
wp rudel cleanup --dry-run
wp rudel cleanup
Из PHP команда Rudel::run_automation() выполняет те же задачи, что и событие cron.