Bosh sahifa Wiki Background service

Background service

Background service — foydalanuvchi bilan bevosita interaktiv oynasiz, tizim yoki ilova fonida uzoq muddat ishlaydigan dastur komponentidir. U queue consumer, scheduler, sync, monitoring, notification, indexing yoki maintenance vazifalarini bajarishi mumkin. Operatsion tizim service manager uning ishga tushishi, to‘xtashi, restarti va ruxsatlarini boshqaradi.

Service hayot sikli

Linuxda systemd unit executable, dependency, user, environment va restart siyosatini belgilaydi. Windows Service Control Manager start, stop va recovery actionlarini boshqaradi. Container muhitida jarayon foregroundda ishlashi, orchestrator esa uni background service sifatida nazorat qilishi odatiy.

Startup tugallanganini process yaratilgani bilan tenglashtirib bo‘lmaydi. Readiness service trafik yoki ish qabul qilishga tayyorligini, liveness deadlock yoki qayta tiklanmaydigan holatni bildiradi. Shutdown signal olganda yangi ish qabul qilish to‘xtaydi, mavjud ish deadline ichida tugaydi va checkpoint saqlanadi.

Ish navbati

Service broker yoki database navbatidan task oladi. At-least-once delivery sabab bir task qayta kelishi mumkin. Handler idempotent bo‘ladi yoki deduplication key ishlatadi. Ack side effect muvaffaqiyatli commitdan keyin beriladi; oldin ack data yo‘qotadi, keyin crash duplicatega sabab bo‘lishi mumkin.

Poison message doim xato bersa cheksiz retry navbatni to‘sadi. Retry soni, exponential backoff va dead-letter queue qo‘llanadi. Dead-letter yozuvning egasi, alerti va qayta ishlash yo‘li bo‘ladi. Task visibility timeout uning kutilgan maksimal vaqtiga moslanadi.

Scheduler va periodik ish

Periodik task cron yoki distributed scheduler bilan ishga tushadi. Bir nechta instance bir vaqtda ayni vazifani bajarib yubormasligi uchun leader election, distributed lock yoki idempotent design kerak. Lock lease tugab, eski worker hali ishlasa ikkita owner paydo bo‘lishi mumkin; fencing token xavfsizroq.

Missed schedule siyosati aniq: xizmat o‘chgan davrdagi barcha run bajariladimi, faqat oxirgisi yoki tashlab yuboriladimi. Timezone va daylight saving kalendar ishlariga ta’sir qiladi. Uzoq task keyingi interval bilan ustma-ust tushishi mumkin.

Resurs va xavfsizlik

Service alohida minimal privilege userda ishlaydi. Secret environment logiga chiqmaydi, rotation restart yoki dynamic reload bilan qo‘llanadi. Network egress faqat zarur endpointlarga beriladi. File permission va working directory aniq belgilanadi.

Thread pool, connection pool, memory va queue prefetch limitlari overloadni boshqaradi. Background ish interactive API bilan bir hostda bo‘lsa CPU va database capacity uchun raqobat qiladi. Priority va quota foreground latencyni himoya qiladi.

Observability

Log task ID, attempt, duration va natijani saqlaydi. Metrikalar queue depth, oldest message age, throughput, failure, retry va saturationni ko‘rsatadi. Faqat process “up” bo‘lishi yetarli emas; progress heartbeat yoki oxirgi muvaffaqiyatli ish vaqti kuzatiladi.

Deploymentda eski va yangi service bir muddat birga ishlashi mumkin. Message schema backward-compatible bo‘ladi. Graceful rolling update in-flight taskni yo‘qotmaydi. Recovery mashqi broker outage, database timeout va process kill holatlarini qamrab oladi.

Hayot sikli

Background service ishga tushganda konfiguratsiya va bog‘liq resurslarni tekshiradi, tayyorlik signalini faqat xizmat qila olganda beradi. To‘xtash signalida yangi ish qabul qilinmaydi, bajarilayotgan vazifalarga muddat beriladi va holat xavfsiz saqlanadi. Majburiy tugatish ehtimoli mavjudligi sababli vazifalar takror bajarishga chidamli bo‘lishi kerak.

Bog‘liq tushunchalar

Daemon, System service, Worker, Job queue, Scheduler, Graceful shutdown, Dead-letter queue