מאקרואים של 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