On this page
מערך שיעור: Scheduling ולוגים
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים יתזמנו סקריפט ETL אוטומטי עם לוגים מובנים, כהכנה לפרויקט המסכם.
בסוף השיעור הסטודנטים צריכים: לכתוב תחביר cron בסיסי, להשתמש ב-APScheduler מתוך קוד, ולהוסיף structured logging לסקריפט קיים.
דגש קריטי: הדגישו שהרצה אוטומטית בלי לוגים היא “כישלון שקוף” — קשרו לחוויה מוכרת: דוח שאמור היה לרוץ בלילה ולא רץ, ואף אחד לא ידע עד הבוקר.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | שאלו: “איך מריצים סקריפט כל יום ב-2 בלילה בלי לקום?” |
| הרעיון: cron | 20 דקות | תחביר 5 שדות, דוגמאות |
| הרעיון: APScheduler | 15 דקות | חלופה בתוך קוד פייתון |
| הבעיה: כישלון שקט | 10 דקות | print בלילה שאף אחד לא רואה |
| הרעיון: Structured Logging | 25 דקות | רמות חומרה, קישרו ל-Additions ב-C# |
| תרגול מודרך | 15 דקות | תרגיל 1+2 |
דגשים להעברת השיעור
- קשרו Structured Logging במפורש ליחידת ה-Additions ב-C# (אם כבר נלמדה, או כרמז קדימה) — אותו רעיון, שפה אחרת.
- תחביר cron שווה תרגול חוזר-ונשנה על הלוח — 5 השדות מבלבלים בהתחלה, כדאי כמה דוגמאות שונות (כל שעה, כל יום מסוים, כל יום בשבוע מסוים).
- הדגישו: המטרה של logging כאן היא לא “עוד תיעוד” — היא אבחון אמיתי של מה קרה בהרצה שאף אחד לא צפה בה בזמן אמת.
מושגים
cron — מתזמן ברמת מערכת ההפעלה. APScheduler — תזמון מתוך קוד פייתון. Structured Logging — לוגים עם רמות חומרה.
תרגיל חשיבה
שאלת פתיחה: “סקריפט ה-ETL שלכם רץ כל לילה ב-02:00 עם cron. בבוקר אתם מגלים שהדוח היומי חסר. בלי לוגים, איך הייתם מתחילים לחקור מה קרה?”
מהלך: הובילו לתובנה: בלי לוגים, אין שום עקבות — צריך “לנחש” ולהריץ שוב ידנית כדי לנסות לשחזר את הבעיה, בזמן שהתקלה המקורית כבר “נעלמה”. עם לוגים, פותחים את etl.log, מוצאים בדיוק את שורת ה-error מהלילה, ורואים מיד מה נכשל ומתי.
מה המרצה מראה בסוף: הריצו סקריפט ETL עם כישלון מכוון (URL שגוי), פעם בלי logging (רק print שאבד/לא נראה) ופעם עם logging מלא — פתחו את קובץ הלוג בסוף והראו את שורת ה-error המדויקת, כולל timestamp וטקסט השגיאה — ההבדל בין “לא יודעים כלום” ל"יודעים בדיוק מה קרה ומתי".