𝗣𝗿𝗼𝗹𝗼𝗴𝘂𝗲 𝗮𝗻𝗱 𝗘𝗽𝗶𝗹𝗼𝗴𝘂𝗲 𝗠𝗮𝗰𝗿𝗼𝘀 𝗶𝗻 𝗛𝘆𝗽𝗲𝗿𝗹𝗮𝗻𝗲
Hyperlane-இல் request processing-இன் முதுகெலும்பாக Middleware உள்ளது. பெரும்பாலான மக்கள் நிலையான request மற்றும் response middleware-களைப் பயன்படுத்துகின்றனர். இருப்பினும், கூடுதல் கட்டுப்பாட்டிற்காக Hyperlane பிரத்யேக prologue மற்றும் epilogue macros-களை வழங்குகிறது.
இந்த macros கோரிக்கை வாழ்க்கைச் சுழற்சியின் (request lifecycle) தொடக்கத்திலும் இறுதியிலும் இயங்குகின்றன. தரவு வாடிக்கையாளரை (client) எப்போது சென்றடைகிறது என்பதைத் துல்லியமாகக் கட்டுப்படுத்த இவை உங்களுக்கு அனுமதிக்கின்றன.
கோரிக்கை வாழ்க்கைச் சுழற்சி (The Request Lifecycle):
• Request arrives: சர்வர் HTTP கோரிக்கையைப் பெறுகிறது. • Prologue phase: நீங்கள் headers அல்லது status codes போன்ற ஆரம்பத் தரவுகளை அனுப்புகிறீர்கள். • Middleware chain: செயல்பாடுகள் (functions) கோரிக்கையைச் செயலாக்குகின்றன. • Route handler: சிஸ்டம் response-ஐ உருவாக்குகிறது. • Response middleware: செயல்பாடுகள் response-ஐச் செயலாக்குகின்றன. • Epilogue phase: இறுதித் தரவு வாடிக்கையாளருக்கு அனுப்பப்பட்டு (flush), இணைப்புகள் மூடப்படுகின்றன.
படி 2 மற்றும் 6-ஐ நிர்வகிக்க இந்த macros-களைப் பயன்படுத்தவும்.
The Send Macros:
முக்கியமானதல்லாத தரவுகளுக்கு #[try_send]-ஐப் பயன்படுத்தவும். ஒரு இணைப்பு துண்டிக்கப்பட்டால், இது சிஸ்டம் முடங்காமல் (crash) பிழையைச் சமாளிக்கும். ஒரு துண்டுத் தரவை (chunk) இழந்தாலும் பரவாயில்லை என்ற streaming சூழலுக்கு இது சிறந்தது.
முக்கியமான தரவுகளுக்கு #[send]-ஐப் பயன்படுத்தவும். இது தரவு நிச்சயமாகச் சென்றடைவதை உறுதி செய்கிறது.
The Flush Macros:
buffer-ஐத் துடைக்க முயற்சிப்பதற்கும் பிழைகளைச் சுமூகமாகக் கையாளுவதற்கும் #[try_flush]-ஐப் பயன்படுத்தவும்.
buffer செய்யப்பட்ட அனைத்துத் தரவுகளையும் வாடிக்கையாளருக்குக் கட்டாயமாக அனுப்ப #[flush]-ஐப் பயன்படுத்தவும். ஒரு இணைப்பை மூடுவதற்கு முன் தரவு இழப்பைத் தவிர்க்க இதைப் பயன்படுத்தவும்.
சிறந்த நடைமுறைகள் (Best Practices):
- இணைப்புகள் துண்டிக்கப்படும்போது சிஸ்டம் முடங்குவதைத் தவிர்க்க, streaming தரவுகளுக்கு #[try_send]-ஐப் பயன்படுத்தவும்.
- தரவு விநியோகம் கட்டாயமானதாக இருக்கும்போது #[send]-ஐப் பயன்படுத்தவும்.
- ஒரு இணைப்பை மூடுவதற்கு முன் எப்போதும் உங்கள் buffer-ஐ flush செய்யவும்.
- இணைப்பை மீண்டும் பயன்படுத்துவதைப் (connection reuse) பராமரிக்க உங்கள் epilogue-இல்
stream.is_keep_alive()என்பதைச் சரிபார்க்கவும். - நிகழ்நேரப் புதுப்பிப்புகளை (real-time updates) வழங்க Server-Sent Events (SSE)-க்கு இந்த macros-களைப் பயன்படுத்தவும்.
- சிஸ்டம் தோல்விகளைத் தவிர்க்க அனைத்து send மற்றும் flush பிழைகளையும் கையாளவும்.
இந்தத் கருவிகள் தரவு ஓட்டம் (data flow) மற்றும் response நேரத்தின் மீது உங்களுக்குத் துல்லியமான கட்டுப்பாட்டை வழங்குகின்றன.
Source: https://dev.to/tengxgfyrz67s/prologue-and-epilogue-macros-1n29 Project Code: https://github.com/hyperlane-dev/hyperlane