Ana içeriğe geç

Celery Arka Plan Görevleri

Beat Schedule (Periyodik Görevler)

GörevZamanlamaQueueAçıklama
ota.check_scheduledHer 5 dkotaZamanlanmış OTA'ları tetikle
ota.check_timeoutsHer 10 dkota30dk+ süren OTA'ları timeout yap
alarm.check_snoozedHer 5 dkdefaultSnooze süresi biten alarm'ları reopen
alarm.check_device_offlineHer 5 dkdefaultVeri gelmeyen cihazlar için alarm
alarm.check_battery_soh_decline06:00defaultBatarya sağlığı düşüş kontrolü
cleanup.check_unclaimed_devices03:00cleanupUnclaimed device temizliği
reactive_ratio.calculate_daily00:15defaultGünlük reaktif oran hesaplama
reactive_ratio.calculate_monthlyAy 1. gün 01:00defaultAylık reaktif oran
energy_summary.calculate_daily00:30defaultGünlük enerji delta özeti
rawconfig.push_all_gatewaysHer 30 dkdefaultGateway config push (retained msg recovery)
bms_identity.daily_check04:00defaultBMS kimlik bilgisi kontrol

Görev Detayları

OTA Tasks

ota.process_batch — Batch OTA orkestrasyonu

  • Hard timeout: 7200s (2 saat), soft: 7000s
  • Gateway'leri batch_size'a böler (default 10)
  • Her batch arası batch_delay_seconds bekler (default 300s)
  • Her gateway için _initiate_single_ota() çağırır
  • Progress DB'ye yazılır

ota.check_scheduled — Zamanlanmış OTA tetikleme (5dk)

ota.check_timeouts — 30 dakikadan uzun süredir in_progress/downloading olan OTA'ları failed olarak işaretler

Alarm Tasks

alarm.send_notification — Alarm bildirimi gönderme

  • Kanallar: Email, SMS, WhatsApp, Push
  • 3 retry, 60s exponential backoff

alarm.check_device_offline — X dakika veri gelmeyen cihazları tespit eder ve device_offline alarmı oluşturur

Energy Tasks

reactive_ratio.calculate_daily — Önceki güne ait aktif/endüktif/kapasitif tüketim ve reaktif oran yüzdesi hesaplar. reactive_ratio_daily tablosuna yazar.

energy_summary.calculate_daily — İnverter (PV/load/grid/battery) ve analizör (active/reactive import/export) enerji deltalarını hesaplar. daily_energy_summaries tablosuna yazar.