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

Автоматизация

Автоматизация 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 самостоятельно не отправляет уведомления; подключите действие, чтобы уведомлять владельцев.

PHP
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.