# מערך שיעור: 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 וטקסט השגיאה — ההבדל בין "לא יודעים כלום" ל"יודעים בדיוק מה קרה ומתי".
