feat(openflare): 将定时任务迁入 Wavelet Asynq 异步任务框架

将 SSL 续期、可观测数据清理、WAF IP 组同步与 Uptime Kuma 同步
从 API 进程内 cron 迁移为 Asynq Handler,并通过 w_schedules 种子迁移
注册默认定时调度;移除 bootstrap 中的 in-process cron 启动逻辑。
This commit is contained in:
ryan
2026-06-18 19:14:47 +08:00
parent b59a2f3be3
commit 3342d3c39d
15 changed files with 334 additions and 243 deletions
@@ -12,15 +12,8 @@ import (
"github.com/Rain-kl/Wavelet/pkg/logger"
)
func init() {
registerJob("ssl_renew", "0 0 * * *", func(ctx context.Context) {
if err := runSSLRenewJob(ctx); err != nil {
LogJobError(ctx, "ssl_renew", err)
}
})
}
func runSSLRenewJob(ctx context.Context) error {
// RunSSLRenewJob renews all TLS certificates that are due for renewal.
func RunSSLRenewJob(ctx context.Context) error {
logger.InfoF(ctx, "[OpenFlareTasks] SSL renew job started")
certificates, err := model.ListTLSCertificates(ctx)
@@ -48,4 +41,4 @@ func runSSLRenewJob(ctx context.Context) error {
logger.InfoF(ctx, "[OpenFlareTasks] SSL renew job completed: triggered=%d eligible=%d", triggered, len(due))
return nil
}
}