אימייל ו-SMS טרנזקציוניים
הודעות הרשמה, קבלה ואיפוס נכנסות לתור על ידי אפליקציית הווב ונשלחות על ידי מאגר עובדים.
תורי FIFO שלא מאבדים משימות כשעובד מת, כשיצרנים וצרכנים רצים במקביל.
כל שירות מוסיף עבודה בלי להמתין לצרכנים.
הדגמה מונפשת עם פקודות HotKV אמיתיות ותשובות לדוגמה. לחצו על כל שלב כדי לעבור אליו. הפקודות והתשובות נשארות באנגלית, בדיוק כפי שמקלידים ורואים ב-HotKV.
עבודת רקע כמו אימיילים, שינוי גודל תמונות ו-webhooks צריכה תור בין הקוד שיוצר אותה לקוד שמבצע אותה. תור שמאבד משימה כשעובד קורס באמצע משימה גרוע יותר מאין תור, כי אף אחד לא שם לב שהמשימה נעלמה.
רשימות נותנות תור FIFO פשוט. BLMOVE מעביר כל משימה לרשימת עיבוד ברגע שהיא נמסרת לעובד, כך שמשימה בביצוע תמיד נשמרת איפשהו אם העובד נעלם. יצרנים וצרכנים מקבלים שירות מתהליכוני עבודה מקבילים.
כל שירות מוסיף עבודה בלי להמתין לצרכנים.
LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"BLMOVE חוסם עד שיש משימה זמינה, ואז מעביר אותה לרשימת עיבוד בצעד אחד.
BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0האימייל יצא. המשימה מוסרת מרשימת העיבוד.
LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"עובד 2 מת באמצע משימה. המשימה שלו עדיין ברשימת העיבוד, לא אבדה.
LRANGE queue:emails:processing 0 -1מנטר מחזיר את המשימה שננטשה לתור ועובד אחר לוקח אותה.
LMOVE queue:emails:processing queue:emails LEFT RIGHTהודעות הרשמה, קבלה ואיפוס נכנסות לתור על ידי אפליקציית הווב ונשלחות על ידי מאגר עובדים.
העלאות נכנסות לתור ליצירת תמונות ממוזערות ולטרנסקודינג, ומטרנסקודר שקרס אף פעם לא נופל קובץ.
webhooks יוצאים נכנסים לתור ומנוסים מחדש בלי לחסום את הבקשה שהפעילה אותם.
LPUSH עם BRPOP, והעובדים ישנים עד שמגיעה עבודה.
LPUSHBRPOPBLMOVE מעביר כל משימה לרשימת עיבוד באופן אטומי.
BLMOVELREMיצרנים וצרכנים מקבלים שירות מתהליכוני עבודה מקבילים.
לאישורי קבלה, קבוצות צרכנים והפעלה חוזרת, משתמשים בזרמים.
XADDXREADGROUPאם תופסים משימות עם BLMOVE, המשימה נשארת ברשימת העיבוד. מנטר יכול להחזיר לתור כל דבר ששהה שם זמן רב מדי.
לא. BRPOP ו-BLMOVE חוסמים עד שמגיעה משימה, עם פסק זמן אופציונלי.
רשימות הן התור הפשוט ביותר. זרמים מוסיפים קבוצות צרכנים, אישור לכל הודעה והיסטוריה. ראו את השימוש בהזרמת אירועים.
HotKV מדבר את פרוטוקול Redis, ולכן אפשר להפנות אליו לקוח קיים ולהריץ את אותן פקודות.