자동화
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 |
기본 설정에서는 이벤트가 예약되지만, 과거의 만료 시각이 명시된 샌드박스만 제거됩니다. 연령 제한, 유휴 제한 및 기본 TTL이 설정되어 있지 않기 때문입니다.
WP-Cron
활성화하면 이벤트가 예약되며, 요청이 있을 때마다 예약 상태를 다시 확인합니다. auto_cleanup_enabled, auto_cleanup_merged 또는 expiring_environment_notice_days 중 하나라도 0이 아니면 이벤트가 유지되고, 그렇지 않으면 제거됩니다. 비활성화하면 이벤트가 제거됩니다.
자동화 명령은 없습니다. 설정을 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 이벤트와 같은 작업을 실행합니다.