BloguMessaging
Designing reliable notification queues and retries
Na Micah Ondiwa, Mhandisi Mkuu wa Programu 1 dak. kusoma
Usitume ujumbe ndani ya ombi la mtumiaji. Foleni yenye majaribio ya kurudia, back-off na kuondoa nakala inafanya arifa ziwe za kuaminika wakati watoa huduma wanapotetereka.
If your application calls an SMS or email provider directly while a user waits, a slow or failing provider slows down or breaks your application. The fix is to separate "decide to send" from "send".
Weka ujumbe kwenye foleni
Wakati jambo linapotokea, andika kazi ya arifa kwenye foleni au kwenye jedwali la database na rudisha mara moja. Kazi tofauti (worker) inachukua kazi na kuita mtoa huduma. Kwenye shared hosting bila message broker, jedwali la kazi linalosindika kwa kupitia kazi iliyo pangwa kwa ratiba hufanya kazi vizuri.
Jaribu tena kwa kuchelewesha kwa taratibu
Kosa za muda mfupi ni za kawaida. Jaribu tena baada ya ucheleweshaji unaoongezeka — kwa mfano dakika moja, dakika tano, dakika thelathini — na ukome baada ya idadi iliyowekwa ya majaribio. Taja makosa ya kudumu (nambari isiyofaa) ili yasijaribwe tena.
Fanya utumaji uwe idempotent
Mpa kila arifa ufunguo wa kipekee, kama vile ID ya oda pamoja na aina ya ujumbe. Ikiwa kazi inafanya kazi mara mbili, utekelezaji wa pili utaona ufunguo na hautafanya chochote. Wateja hawapaswi kamwe kupokea risiti ile ile mara tatu.
Tazama foleni
- Toa tahadhari wakati kazi zinapoanza kukusanyika au kiwango cha kushindwa kinapoongezeka.
- Wonyesha wafanyakazi hali ya ujumbe muhimu.
- Hifadhi kazi zilizoshindwa kwa uchunguzi badala ya kuzifuta.
Panga kwa kipaumbele
Msimbo wa mara moja na tahadhari za usalama zinapaswa kuingia mbele ya jarida. Tumia fole ni tofauti au vipaumbele.
Learn more about our messaging integration work.
Kuhusu mwandishi
Micah Ondiwa
Mhandisi Mkuu wa Programu
Micah Ondiwa anaandika kuhusu uhandisi wa programu — usanifu wa programu, APIs na uingizaji, data na maendeleo yanayosaidiwa na AI, na utoaji wa kuaminika.
