במערכת Make ניתן להגדיר מודולים של "טיפול בשגיאות", שיגדירו את התנהלות המערכת כאשר מתרחש כשל במהלך ריצה של תהליך.
הפניה למאמר מצוין בנושא כאן.
במאמר זה, נסביר לעומק את התנהגות מודול-הטיפול-בשגיאות מסוג Break - מה התהליך שמתרחש כאשר מודול זה מופעל, וכיצד נוכל לבחון את השגיאה ולטפל בה.
הקדמה: מה זה Break?
כאשר מתרחשת שגיאה בסינריו, והגדרנו מודול טיפול מסוג Break - נצטרך לקבוע כמה פעמים המערכת תנסה שליחה נוספת של התהליך, ומהו מרווח הזמן בין הניסיונות (בדקות).
במקרה כזה, כאשר מודול נכשל והועבר לטיפול של Break, יתרחשו האירועים הבאים:
בסוגריים: הבדל בין טיפול ב-Break לטיפול בשגיאות אחרות
כאשר מגדירים מטפל-שגיאות מסוג שאינו “Break”, לא ייווצרו Attempts נוספים.
כל ה-Attempts נובעים אך ורק מהרצות חוזרות שהוגדרו עם Break.
Break אינו נחשב כישלון, אלא דרך לטפל בתהליך באופן שונה ולהעבירו להמשך הרצות חוזרות. ולכן גם הריצה הראשונית שלו הוגדרה כ-“Success”.
סקירה וטיפול בריצות שלא הושלמו
כאשר יש ריצות שלא הושלמו, ניתן לגשת אליהן דרך לוג הריצות שלא הושלמו וללחוץ על כפתור “Details”, כדי להיכנס לריצה הראשית שלא הושלמה (בה יופיע למעלה “Record 0”). כעת ניתן לסקור את ההרצות שבוצעו כנסיונות חוזרים, וכן לטפל בתהליך:
טיפול בתהליך והרצה ידנית -
אם נלחץ על התרשים של הסינריו עצמו – נקבל דבר מעניין:
פתיחה של המודולים הראשונים שקדמו למודול שנכשל - תראה לנו את הOutput שלהם מהריצה הזו. אין כמובן אפשרות לערוך
אבל פתיחה של המודול שנכשל והמודולים שאחריו, תאפשר לנו לערוך את הגדרות המודול, כדי לבצע תיקונים ידניים, ואח"כ להריץ שוב את התהליך על ידי Run once. כמובן שגם כאן, הריצה תתחיל רק מהמודול שנכשל והלאה.
סקירת הנסיונות החוזרים להרצה -
בלוג הנסיונות החוזרים (attempts) שבצד שמאל, ניתן לראות את רשימת הנסיונות החוזרים, כולל מועד הנסיון וכן האם הסתיים שוב בError, או שהפעם הצליח - Success.
אפשר ללחוץ על Attempt ספציפי – ולראות את פרטי נסיון ההרצה הספציפי.
בכל מקרה, מכיון שהרצה זו מתחילה רק מהמודול שנכשל בתחילה, נוכל לראות את תוצאות המודולים מהמודול שנכשל והלאה, בלחיצה על הבועה שמצד ימין למודול (כמו בלוג היסטוריה רגיל).
התראות שהתקבלו במייל על ניסיונות כושלים
כאשר מתקבל מייל התראה על כשל בריצה שהוגדרה לטיפול שאינו מסוג Break, הקישור יוביל להיסטוריית הריצה (שבה הסתיימה ב-Warning או Error), ושם ניתן לראות את כל הנתונים ישירות.
לעומת זאת, אם מדובר בטיפול מסוג Break, הקישור יוביל ל-Attempt ולא לריצה הראשית שבהיסטוריה.
פעמים רבות נרצה לעקוב אחרי הריצה הראשית שביצעה את כל המודולים עד הכשל, ולא רק את הנסיון החוזר שנכשל.
לשם כך, יש ללחוץ למעלה על קטגוריית Record, שיוביל לריצה המקורית שלא הושלמה, ואז על התרשים של הסינריו כדי לראות את ה-Output של כל המודולים שהצליחו.
כפתור “Go to Original Record” שבצד ימין למעלה מאפשר גם כן להגיע במהירות לריצה המקורית שהצליחה (מופיעה כ-“Success” בהיסטורי), ולבצע דיבאגינג והתאמות נוספות לתהליך.
בהצלחה!
הפניה למאמר מצוין בנושא כאן.
במאמר זה, נסביר לעומק את התנהגות מודול-הטיפול-בשגיאות מסוג Break - מה התהליך שמתרחש כאשר מודול זה מופעל, וכיצד נוכל לבחון את השגיאה ולטפל בה.
הקדמה: מה זה Break?
כאשר מתרחשת שגיאה בסינריו, והגדרנו מודול טיפול מסוג Break - נצטרך לקבוע כמה פעמים המערכת תנסה שליחה נוספת של התהליך, ומהו מרווח הזמן בין הניסיונות (בדקות).
במקרה כזה, כאשר מודול נכשל והועבר לטיפול של Break, יתרחשו האירועים הבאים:
- ההרצה תיכנס ללוג הHistory כהרצה שהצליחה (Success). ניתן יהיה לצפות בכל המודולים שרצו, כולל מודול הBreak.
- במקביל, ההרצה תיכנס גם ללוג הריצות שלא הושלמו ("Incomplete Executions"), וגם שם יהיה ניתן לצפות בהרצה (הרחבה בהמשך).
- אחרי ההשהיה, מייק ינסה להריץ מחדש את התהליך, אך זו איננה הרצה חדשה לגמרי, אלא נסיון חוזר (“Attempt”) של הריצה שלא הושלמה. כלומר, מייק ינסה להריץ מחדש רק מהמקום שבו נתקע המודול הבעייתי, ולא יבצע את כל הריצה מההתחלה.
- אם מוגדרות מספר הרצות נוספות (למשל כל 10 דקות), יתווספו ריצות כאלו תחת אותה ריצה שלא הושלמה, כאשר כל הרצה תתווסף כ“Attempt” נוסף.
בסוגריים: הבדל בין טיפול ב-Break לטיפול בשגיאות אחרות
כאשר מגדירים מטפל-שגיאות מסוג שאינו “Break”, לא ייווצרו Attempts נוספים.
כל ה-Attempts נובעים אך ורק מהרצות חוזרות שהוגדרו עם Break.
Break אינו נחשב כישלון, אלא דרך לטפל בתהליך באופן שונה ולהעבירו להמשך הרצות חוזרות. ולכן גם הריצה הראשונית שלו הוגדרה כ-“Success”.
סקירה וטיפול בריצות שלא הושלמו
כאשר יש ריצות שלא הושלמו, ניתן לגשת אליהן דרך לוג הריצות שלא הושלמו וללחוץ על כפתור “Details”, כדי להיכנס לריצה הראשית שלא הושלמה (בה יופיע למעלה “Record 0”). כעת ניתן לסקור את ההרצות שבוצעו כנסיונות חוזרים, וכן לטפל בתהליך:
טיפול בתהליך והרצה ידנית -
אם נלחץ על התרשים של הסינריו עצמו – נקבל דבר מעניין:
פתיחה של המודולים הראשונים שקדמו למודול שנכשל - תראה לנו את הOutput שלהם מהריצה הזו. אין כמובן אפשרות לערוך
אבל פתיחה של המודול שנכשל והמודולים שאחריו, תאפשר לנו לערוך את הגדרות המודול, כדי לבצע תיקונים ידניים, ואח"כ להריץ שוב את התהליך על ידי Run once. כמובן שגם כאן, הריצה תתחיל רק מהמודול שנכשל והלאה.
סקירת הנסיונות החוזרים להרצה -
בלוג הנסיונות החוזרים (attempts) שבצד שמאל, ניתן לראות את רשימת הנסיונות החוזרים, כולל מועד הנסיון וכן האם הסתיים שוב בError, או שהפעם הצליח - Success.
אפשר ללחוץ על Attempt ספציפי – ולראות את פרטי נסיון ההרצה הספציפי.
בכל מקרה, מכיון שהרצה זו מתחילה רק מהמודול שנכשל בתחילה, נוכל לראות את תוצאות המודולים מהמודול שנכשל והלאה, בלחיצה על הבועה שמצד ימין למודול (כמו בלוג היסטוריה רגיל).
התראות שהתקבלו במייל על ניסיונות כושלים
כאשר מתקבל מייל התראה על כשל בריצה שהוגדרה לטיפול שאינו מסוג Break, הקישור יוביל להיסטוריית הריצה (שבה הסתיימה ב-Warning או Error), ושם ניתן לראות את כל הנתונים ישירות.
לעומת זאת, אם מדובר בטיפול מסוג Break, הקישור יוביל ל-Attempt ולא לריצה הראשית שבהיסטוריה.
פעמים רבות נרצה לעקוב אחרי הריצה הראשית שביצעה את כל המודולים עד הכשל, ולא רק את הנסיון החוזר שנכשל.
לשם כך, יש ללחוץ למעלה על קטגוריית Record, שיוביל לריצה המקורית שלא הושלמה, ואז על התרשים של הסינריו כדי לראות את ה-Output של כל המודולים שהצליחו.
כפתור “Go to Original Record” שבצד ימין למעלה מאפשר גם כן להגיע במהירות לריצה המקורית שהצליחה (מופיעה כ-“Success” בהיסטורי), ולבצע דיבאגינג והתאמות נוספות לתהליך.
בהצלחה!
הנושאים החמים