Worker va yetkazish — lease, FCM HTTP v1, retry, circuit breaker, joblar
Tavsif
Ichki ishlar
5 ta
Izoh qoldirish
Tarix
11 yozuv
-
⇄
system statusni o'zgartirdi Ishlanyapti → Bajarildi
Bolalardan avtomatik hisoblandi
-
⇄
system statusni o'zgartirdi Bajarildi → Ishlanyapti
Bolalardan avtomatik hisoblandi
-
💬
worker-ep-13-t03 izoh qoldirdi
MUHIT HODISASI (kod emas, lekin lead/foydalanuvchi bilishi SHART). 2026-09-10 ~05:55 da S04 QA agenti compose tekshiruvi paytida /var/www/apps/erpbom-backend/deploy/.env ustiga `cp .env.example .env` bilan adashib yozdi. HOLAT (worker-pm mustaqil tasdiqladi): fayl git'da KUZATILMAYDI (.gitignore:6), zaxira/generator yo'q, oldingi mazmun (708 bayt, 2026-08-19, dev sandbox qiymatlari) TIKLANMADI; hozir 9644 bayt (.env.example nusxasi + ogohlantirish banneri), 7 ta majburiy kalit BO'SH. TA'SIR DOIRASI: repo'ga hech narsa tushmagan (commit yo'q, sir sizmagan - `git grep` bo'sh); ishlab turgan `erpbom` stack'i (erpbom-app / erpbom-dev-postgres / erpbom-dev-minio / erpbom-nginx, hammasi 2-3 hafta 'Up (healthy)') TA'SIRLANMAGAN, chunki env konteynerlarga ishga tushishda kiritilgan. OQIBAT: keyingi `make dev-up`/`prod-up` yoki konteynerni qayta yaratish JIM ishlamaydi - `${VAR:?}` qo'riqchilari aniq xato beradi (bu yaxshi, jimgina buzilish yo'q). TIKLASH QO'LDA KERAK: DB_URL, DB_USER, DB_PASSWORD, JWT_SECRET, MINIO_ROOT_USER, MINIO_ROOT_PASSWORD, ERP_DOMAIN, ERP_COMPANY_NAME, ERP_BOOTSTRAP_OWNER_USERNAME/PASSWORD + dev sandbox uchun BIND_ADDR=127.0.0.1 va 80/443 dan boshqa nginx portlari. Qiymatlar ishlab turgan konteynerlar muhitida hali bor (docker inspect) - LEKIN worker-pm ularni CHIQARIB OLMADI: QA agentining shu urinishi ruxsat tizimi tomonidan bloklangan edi, boshqa agent orqali aylanib o'tish ruxsat laundering'i bo'lardi. Tiklash - foydalanuvchi qarori. TAVSIYA: deploy/.env uchun zaxira/generator qo'shilsin (yoki .env.local naqshi), va agentlarga `.env` ga yozish taqiqlansin - `.env.example` faqat O'QISH uchun nusxalanadi.
-
⇄
system statusni o'zgartirdi Ishlanyapti → Bajarildi
Bolalardan avtomatik hisoblandi
-
💬
worker-ep-13-t03 izoh qoldirdi
TOPILMA (S03 QA; SPEC ZIDDIYATI - worker-pm lead'ga uzatadi, kodda taxmin qilinmadi). 10_notifications.md §6 F1 jadvali n=5 uchun 'Hodisadan beri ~31 s' deydi (1+2+4+8+16), ya'ni BESH kutish oynasi nazarda tutilgan. Lekin §4 holat mashinasi 'failed (attempt_count = 5) -> dead' deb yozadi - demak 5-kutish (16 s) HECH QACHON materiallashmaydi: 4 kutishdan keyin (~15 s) qator dead bo'ladi. Ikki bo'lim bir-biriga zid. Kod §4 ga amal qildi (§4 normativ va bir ma'noli: attempt_count=5 -> dead). Ta'siri: qoida 26 dagi '24 soat navbat to'planadi' va'dasi bilan birga baholanishi kerak - hozir bitta xabar FCM tiklanishini faqat ~15 sekund kutadi, keyin dead bo'ladi (circuit breaker tizimli xatoda attempt_count ni oshirmagani uchun uzoq nosozlik qamrab olinadi, lekin TOKEN darajasidagi qayta urinish oynasi qisqa). KERAK: §5 savol-javob sikli orqali §6 jadvali yoki §4 chegarasi aniqlashtirilsin (a: 5 kutish -> attempt_count=6 da dead; b: jadval ~15 s deb tuzatilsin). Agent o'zboshimchalik bilan tanlamadi. Ikkinchi (kichik) qarz: MAX_ATTEMPTS=5, BATCH_SIZE=100, LEASE_DURATION=5daq NotificationOutboxWorker da hardcoded (S01 dan meros); S03 ning o'z raqamlari (20/60s/5daq) konfiguratsiyada - izchillik uchun keyingi taskda birlashtirilsin.
-
💬
worker-ep-13-t03 izoh qoldirdi
TOPILMA (S01 dan; spec/sxema bo'shligi - worker-pm lead'ga uzatadi): qoida 5 qabul qiluvchini yuborish oldidan qayta tekshirishni talab qiladi, uchinchi sharti - HUQUQ HALI BORMI (spec §5 qoida 5, M4=C talqini). Worker bu shartni BAJARA OLMAYDI: notification_outbox da ham, NotificationEventCatalog/NotificationEventDefinition da ham permission_code (yoki ekvivalent) maydoni YO'Q - qaysi huquq tekshirilishi kerakligi kodda ifodalanmagan. Hozir worker faqat users.status='active' + deleted_at IS NULL ni tekshiradi (qoida 5 ning ikkita shartI). Oqibat: huquqi olib qo'yilgan, lekin akkaunti faol foydalanuvchi navbatdagi xabarni OLADI - spec esa dead/recipient_ineligible kutadi. Bu S01 mezonlariga (5557-5561) kirmaydi, shu sabab S01 bloklanmadi. Hal qilish yo'llari (TANLOV LEAD/BIZNES QARORI, agent o'zboshimchalik bilan tanlamaydi): (a) katalogga permission_code qo'shish (katalog kod artefakti - M2), (b) qabul qiluvchi snapshot'ida huquqni outbox qatoriga yozish, (c) spec'da qoida 5(c) ni ongli ravishda v1 dan chiqarish. Manba: S01 coder javadoc + shu izoh.
-
⇄
system statusni o'zgartirdi Backlog → Ishlanyapti
Bolalardan avtomatik hisoblandi
-
🔗
pm-agent bog'liqlik qo'shdi
→ EP-13-T02
-
🔗
pm-agent bog'liqlik qo'shdi
→ EP-13-T01
-
🔗
pm-agent bog'liqlik qo'shdi
→ EP-13-T00
-
✦
pm-agent yaratdi
Worker va yetkazish — lease, FCM HTTP v1, retry, circuit breaker, joblar
Ma'lumot
- Agent
- —
- Olingan
- —
- Boshlandi
- 09.09.2026 21:43
- Tugadi
- 11.09.2026 09:11
- Baho
- 28 soat
- Spec
- erp/docs/modules/10_notifications.md#5
- Branch
- —
- Commit
- —
Bog'liqliklar
Bundan oldin tugashi kerak
Buni kutayotganlar
Agent uchun
Bu ishni AI agent quyidagicha oladi:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-13-T03/claim \ -H "X-Agent: backend-dev-1"
Tugatgach:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-13-T03/status \
-H "X-Agent: backend-dev-1" \
-H "Content-Type: application/json" \
-d '{"status":"review","note":"..."}'