fix(backend): 修复代码审核发现的 8 个确认问题
- P0-1: subscription_maintenance_queue 使用 RWMutex 防止 channel close/send 竞态 - P0-2: billing_service CalculateCostWithLongContext 修复被吞没的 out-range 错误 - P1-1: timing_wheel_service Schedule/ScheduleRecurring 添加 SetTimer 错误日志 - P1-2: sora_gateway_service StoreFromURLs 失败时降级使用原始 URL - P1-3: concurrency_cache 用 Pipeline 替代 Lua 脚本兼容 Redis Cluster - P1-6: sora_media_cleanup_service runCleanup 添加 nil cfg/storage 防护 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -47,7 +47,9 @@ func (s *TimingWheelService) Stop() {
|
||||
|
||||
// Schedule schedules a one-time task
|
||||
func (s *TimingWheelService) Schedule(name string, delay time.Duration, fn func()) {
|
||||
_ = s.tw.SetTimer(name, fn, delay)
|
||||
if err := s.tw.SetTimer(name, fn, delay); err != nil {
|
||||
log.Printf("[TimingWheel] SetTimer failed for %q: %v", name, err)
|
||||
}
|
||||
}
|
||||
|
||||
// ScheduleRecurring schedules a recurring task
|
||||
@@ -55,9 +57,13 @@ func (s *TimingWheelService) ScheduleRecurring(name string, interval time.Durati
|
||||
var schedule func()
|
||||
schedule = func() {
|
||||
fn()
|
||||
_ = s.tw.SetTimer(name, schedule, interval)
|
||||
if err := s.tw.SetTimer(name, schedule, interval); err != nil {
|
||||
log.Printf("[TimingWheel] recurring SetTimer failed for %q: %v", name, err)
|
||||
}
|
||||
}
|
||||
if err := s.tw.SetTimer(name, schedule, interval); err != nil {
|
||||
log.Printf("[TimingWheel] initial SetTimer failed for %q: %v", name, err)
|
||||
}
|
||||
_ = s.tw.SetTimer(name, schedule, interval)
|
||||
}
|
||||
|
||||
// Cancel cancels a scheduled task
|
||||
|
||||
Reference in New Issue
Block a user