(request: SelfCheckScheduleRequest)
| 382 | |
| 383 | @router.post("/schedule") |
| 384 | def api_update_selfcheck_schedule(request: SelfCheckScheduleRequest): |
| 385 | mode = _normalize_mode(request.mode) |
| 386 | interval_minutes = max(5, min(24 * 60, int(request.interval_minutes or 15))) |
| 387 | |
| 388 | update_settings( |
| 389 | selfcheck_auto_enabled=bool(request.enabled), |
| 390 | selfcheck_interval_minutes=interval_minutes, |
| 391 | selfcheck_mode=mode, |
| 392 | ) |
| 393 | |
| 394 | selfcheck_scheduler.notify_schedule_updated() |
| 395 | if request.run_now: |
| 396 | if request.enabled: |
| 397 | selfcheck_scheduler.request_run_now("manual") |
| 398 | elif not has_running_selfcheck_run(): |
| 399 | _start_selfcheck_background(mode, "manual") |
| 400 | |
| 401 | return { |
| 402 | "success": True, |
| 403 | "message": "自检定时设置已更新", |
| 404 | "schedule": { |
| 405 | "enabled": bool(request.enabled), |
| 406 | "interval_minutes": interval_minutes, |
| 407 | "mode": mode, |
| 408 | }, |
| 409 | "runtime": selfcheck_scheduler.snapshot(), |
| 410 | } |
| 411 | |
| 412 | |
| 413 | @router.post("/schedule/run-now") |
nothing calls this directly
no test coverage detected