מאקרואים של Prologue ו-Epilogue ב-Hyperlane
Middleware הוא עמוד השדרה של עיבוד בקשות ב-Hyperlane. רוב האנשים משתמשים ב-middleware סטנדרטי של בקשה ותגובה. עם זאת, Hyperlane מציעה מאקרואים ייעודיים של prologue ו-epilogue לשליטה נוספת.
המאקרואים הללו רצים בתחילת מחזור החיים של הבקשה ובסופו. הם מאפשרים לך לשלוט בדיוק מתי הנתונים מגיעים ללקוח.
מחזור חיי הבקשה:
• הבקשה מגיעה: השרת מקבל את בקשת ה-HTTP. • שלב ה-Prologue: אתה שולח נתונים ראשוניים כמו כותרות או קודי סטטוס. • שרשרת ה-Middleware: פונקציות מעבדות את הבקשה. • מטפל הנתיב (Route handler): המערכת בונה את התגובה. • Middleware של התגובה: פונקציות מעבדות את התגובה. • שלב ה-Epilogue: הנתונים הסופיים נשלחים ללקוח והחיבורים נסגרים.
השתמש במאקרואים הללו כדי לנהל את שלבים 2 ו-6.
מאקרואי ה-Send:
השתמש ב-#[try_send] עבור נתונים שאינם קריטיים. אם חיבור נקטע, הוא מטפל בשגיאה מבלי לגרום לקריסה. זה טוב עבור streaming שבו אובדן של chunk אחד אינו מהווה בעיה.
השתמש ב-#[send] עבור נתונים קריטיים. זה מבטיח שהנתונים יעברו.
מאקרואי ה-Flush:
השתמש ב-#[try_flush] כדי לנסות לרוקן את ה-buffer ולטפל בשגיאות בצורה חלקה.
השתמש ב-#[flush] כדי לאלץ את כל הנתונים המאוחסנים ב-buffer להישלח ללקוח. השתמש בזה כדי למנוע אובדן נתונים לפני סגירת חיבור.
שיטות עבודה מומלצות:
- השתמש ב-#[try_send] עבור נתוני streaming כדי למנוע קריסות בחיבורים שבורים.
- השתמש ב-#[send] כאשר העברת הנתונים היא חובה.
- תמיד בצע flush ל-buffer שלך לפני סגירת חיבור.
- בדוק את stream.is_keep_alive() ב-epilogue שלך כדי לנהל שימוש חוזר בחיבורים.
- השתמש במאקרואים הללו עבור Server-Sent Events (SSE) כדי לדחוף עדכונים בזמן אמת.
- טפל בכל שגיאות ה-send וה-flush כדי למנוע כשלים במערכת.
כלים אלו מעניקים לך שליטה מדויקת על זרימת הנתונים ועל תזמון התגובה.
Source: https://dev.to/tengxgfyrz67s/prologue-and-epilogue-macros-1n29 Project Code: https://github.com/hyperlane-dev/hyperlane