Makro ya Prologue na Epilogue katika Hyperlane
Middleware ndiyo uti wa mgongo wa usindikaji wa maombi (request processing) katika Hyperlane. Watu wengi hutumia middleware ya kawaida ya maombi (request) na majibu (response). Hata hivyo, Hyperlane inatoa makro maalum ya prologue na epilogue kwa ajili ya udhibiti zaidi.
Makro haya hufanya kazi mwanzoni kabisa na mwishoni kabisa mzunguko wa maombi (request lifecycle). Yanakuruhusu kudhibiti kwa usahihi wakati data inapofika kwa mteja (client).
Mzunguko wa Maombi (Request Lifecycle):
• Maombi yanapowasili: Seva inapokea ombi la HTTP. • Awamu ya prologue: Unatuma data za awali kama vile vichwa vya habari (headers) au nambari za hali (status codes). • Mnyororo wa middleware: Kazi (functions) husindika ombi. • Mshughulikiaji wa njia (Route handler): Mfumo unatengeneza jibu. • Middleware ya majibu: Kazi husindika jibu. • Awamu ya epilogue: Data za mwisho hutumwa kwa mteja na miunganisho hufungwa.
Tumia makro haya kudhibiti hatua ya 2 na 6.
Makro ya Kutuma (Send Macros):
Tumia #[try_send] kwa data zisizo muhimu sana. Ikiwa muunganisho utakatika, inashughulikia hitilafu bila kusababisha mfumo kusimama (crashing). Hii ni nzuri kwa utiririshaji (streaming) ambapo kupoteza sehemu moja (chunk) haina tatizo.
Tumia #[send] kwa data muhimu. Hii inahakikisha kuwa data inapita.
Makro ya Kusafisha (Flush Macros):
Tumia #[try_flush] kujaribu kusafisha buffer na kushughulikia hitilafu kwa ufasaha.
Tumia #[flush] kulazimisha data zote zilizowekwa kwenye buffer kwenda kwa mteja. Tumia hii kuzuia upotevu wa data kabla ya kufunga muunganisho.
Mbinu Bora (Best Practices):
- Tumia #[try_send] kwa data za utiririshaji (streaming) ili kuepuka kusimama kwa mfumo kwenye miunganisho iliyokatika.
- Tumia #[send] wakati uwasilishaji wa data ni lazima.
- Kila wakati safisha buffer yako kabla ya kufunga muunganisho.
- Angalia stream.is_keep_alive() katika epilogue yako ili kudhibiti utumiaji tena wa muunganisho.
- Tumia makro haya kwa Server-Sent Events (SSE) ili kus