Автоматизация
Автоматизацията на Rudel не позволява на временните пясъчници да се натрупват безкрайно. Едно събитие WP-Cron на всеки час, rudel_scheduled_cleanup, може да:
- изпълнява правилата за почистване (изтичане на срока, възраст и неактивност)
- почиства клонове, слети с основния клон
- отчита пясъчници с изтекъл или близък до изтичане срок
Конфигурация
Автоматизацията чете тези ключове от настройката rudel_config. Пълният списък е в Configuration.
| Ключ | Предназначение | По подразбиране |
|---|---|---|
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.