Flowchart · BackgroundService

Vòng lặp của một worker định kỳ an toàn

Vòng lặp BackgroundService với PeriodicTimer BackgroundService singleton chờ tick của PeriodicTimer, mỗi lần chạy tạo scope DI mới cho DbContext, bắt và log exception rồi chờ chu kỳ sau thay vì để worker chết, và dừng gọn khi token bị huỷ. SCOPE MỚI MỖI LẦN CHẠY TOKEN HUỶ CÓ CÓ KHÔNG VÒNG SAU BackgroundServicesingleton · ExecuteAsync Có ticktiếp theo? Dừng gọnStopAsync · ShutdownTimeout Tạo scope mớiCreateAsyncScope() RunAsync(ct)DbContext · IEmailService Némexception? LogError, không throwthử lại ở chu kỳ sau DbContext mới mỗi lần,change tracker luôn sạch Exception thoátkhỏi ExecuteAsynclà worker chếtvĩnh viễn CHÚ GIẢIBắt đầu / kết thúcBước xử lýRẽ nhánhHai điểm sống cònPhạm vi DI scope © tiennhm