מדריך קלוד קוד בעברית

תיעוד 53

הרצת הנחיות לפי לוח זמנים

השתמשו ב-/loop ובכלי תזמון ה-cron כדי להריץ הנחיות שוב ושוב, לבדוק סטטוס, או להגדיר תזכורות חד פעמיות בתוך סשן של Claude Code.

משימות מתוזמנות ברמת הסשן מאפשרות ל-Claude להריץ שוב הנחיה באופן אוטומטי במרווח זמן, בתוך סשן של Claude Code. השתמשו בהן כדי לבדוק פריסה, ללוות PR, לחזור ולבדוק build ארוך, או להזכיר לעצמכם לעשות משהו מאוחר יותר בסשן.

הערה

המקרים האלה מכוסים בדפים אחרים:

  • תגובה לאירועים בזמן שהם קורים, במקום polling: ראו Channels. ה-CI שלכם יכול לדחוף את הכשל לתוך הסשן ישירות.
  • שמירה על הסשן עובד תור אחר תור לקראת תנאי, ולא לפי מרווח: ראו /goal.

המשימות הן ברמת הסשן. כשממשיכים עם --resume או --continue, Claude Code משחזר משימות שלא פגו, חוץ מאלה שמפורטות תחת מגבלות. לתזמון שנשמר בנפרד מכל סשן, צרו משימה מתוזמנת בענן, הגדירו משימה מתוזמנת ב-Desktop, או השתמשו ב-GitHub Actions.

#השוואת אפשרויות תזמון

Claude Code מציע שלוש דרכים לתזמן עבודה חוזרת או חד פעמית:

ענןDesktop/loop
רץ עלענן, מנוהל על ידי Anthropic כברירת מחדלהמחשב שלכםהמחשב שלכם
דורש שהמחשב יהיה דלוקלאכןכן
דורש סשן פתוחלאלאכן
נשמר בין הפעלות מחדשכןכןמשוחזר עם --resume, עם חריגים
גישה לקבצים מקומייםלא (שכפול חדש)כןכן
שרתי MCPמחברים שמוגדרים לכל משימהקבצי תצורה ומחבריםעובר בירושה מהסשן
בקשות הרשאהמצב Auto כברירת מחדלניתן להגדרה לכל משימהעובר בירושה מהסשן
לוח זמנים שניתן להתאמהכןכןכן
מרווח מינימלישעה אחתדקה אחת כש-Claude קובע אותו, שעה אחת בטפסיםדקה אחת

טיפ

השתמשו במשימות ענן לעבודה שצריכה לרוץ באופן אמין בלי המחשב שלכם. השתמשו במשימות Desktop כשצריך גישה לקבצים ולכלים מקומיים. השתמשו ב-/loop לבדיקות מהירות במהלך סשן.

#הרצת הנחיה שוב ושוב עם /loop

ה-skill המובנה /loop הוא הדרך המהירה ביותר להריץ הנחיה שוב ושוב כל עוד הסשן נשאר פתוח. גם המרווח וגם ההנחיה הם אופציונליים, ומה שאתם מספקים קובע איך הלולאה מתנהגת.

מה מספקיםדוגמהמה קורה
מרווח והנחיה/loop 5m check the deployההנחיה רצה לפי לוח זמנים קבוע
הנחיה בלבד/loop check the deployההנחיה רצה במרווח ש-Claude בוחר בכל איטרציה
מרווח בלבד, או כלום/loopרצה הנחיית התחזוקה המובנית, או loop.md שלכם אם קיים

אפשר גם להעביר skill כהנחיה, לדוגמה /loop 20m /review-pr 1234, כדי להריץ מחדש את ה-skill הזה בכל איטרציה. הפעלה מתוזמנת מריצה רק skills ש-Claude מורשה להפעיל בעצמו. הבאים מגיעים אל Claude כטקסט רגיל, ולא מורצים:

#הרצה במרווח קבוע

כשמספקים מרווח, Claude ממיר אותו לביטוי cron, מתזמן את המשימה, ומאשר את הקצב ואת מזהה המשימה.

/loop 5m check if the deployment finished and tell me what happened

המרווח יכול להופיע לפני ההנחיה כאסימון חשוף כמו 30m, או אחריה כמשפט כמו every 2 hours. היחידות הנתמכות הן s לשניות, m לדקות, h לשעות, ו-d לימים.

שניות מעוגלות כלפי מעלה לדקה הקרובה, כי ל-cron יש רזולוציה של דקה אחת. מרווחים שלא מתמפים לצעד cron נקי, כמו 7m או 90m, מעוגלים למרווח הקרוב ביותר שכן מתמפה, ו-Claude אומר לכם מה נבחר.

#לתת ל-Claude לבחור את המרווח

כשמשמיטים את המרווח, Claude בוחר מרווח באופן דינמי, ולא רץ לפי לוח cron קבוע. אחרי כל איטרציה הוא בוחר השהיה בין דקה אחת לשעה אחת לפי מה שראה: המתנות קצרות בזמן ש-build מסתיים או ש-PR פעיל, והמתנות ארוכות יותר כשאין דבר שממתין. ההשהיה שנבחרה והסיבה לה מודפסות בסוף כל איטרציה.

הדוגמה הבאה בודקת CI והערות סקירה, ו-Claude ממתין זמן ארוך יותר בין איטרציות אחרי שה-PR נרגע:

/loop check whether CI passed and address any review comments

בסשן שבו כלי Monitor זמין, Claude עשוי להשתמש בו ישירות כשאתם מבקשים לוח זמנים דינמי של /loop. Monitor מריץ סקריפט ברקע ומזרים כל שורת פלט בחזרה, וכך נמנע polling לגמרי, ולעיתים קרובות זה יעיל יותר בטוקנים ומגיב מהר יותר מהרצה חוזרת של הנחיה לפי מרווח.

לולאה שמתוזמנת דינמית מופיעה ברשימת המשימות המתוזמנות כמו כל משימה אחרת, כך שאפשר להציג או לבטל אותה באותה דרך. הרשימה מציגה את ה-wakeup הממתין כמשימה חד פעמית, ולכן wakeup שמתוזמן ל-:00 או ל-:30 יכול לרוץ קצת מוקדם. תפוגת שבעת הימים חלה גם על הלולאה.

הערה

מרווחים שנבחרים דינמית והנחיית התחזוקה המובנית עובדים אצל כל ספק, וגם כששליפת דגלי תכונה כבויה. ב-Amazon Bedrock, ב-Claude Platform on AWS, ב-Google Cloud's Agent Platform וב-Microsoft Foundry, או כשהשליפה כבויה, שניהם דורשים Claude Code v2.1.248 או חדש יותר.

#הרצת הנחיית התחזוקה המובנית

כשמשמיטים את ההנחיה, Claude משתמש בהנחיית תחזוקה מובנית במקום בהנחיה שאתם מספקים. בכל איטרציה הוא עובר על אלה, לפי הסדר:

  • להמשיך כל עבודה שלא הושלמה מהשיחה
  • לטפל ב-pull request של הענף הנוכחי: הערות סקירה, הרצות CI שנכשלו, התנגשויות מיזוג
  • להריץ מעברי ניקוי כמו חיפוש באגים או פישוט, כשאין שום דבר אחר שממתין

Claude לא מתחיל יוזמות חדשות מחוץ להיקף הזה, ופעולות בלתי הפיכות כמו push או מחיקה מתבצעות רק כשהן ממשיכות משהו שהתמליל כבר אישר.

/loop

/loop לבד מריץ את ההנחיה הזו במרווח שנבחר דינמית. הוסיפו מרווח, לדוגמה /loop 15m, כדי להריץ אותה בלוח זמנים קבוע. כדי להחליף את ההנחיה המובנית בברירת המחדל שלכם, ראו התאמת הנחיית ברירת המחדל עם loop.md.

#התאמת הנחיית ברירת המחדל עם loop.md

צרו קובץ loop.md כדי להחליף את הנחיית התחזוקה המובנית בהוראות שלכם. הוא מגדיר הנחיית ברירת מחדל אחת ל-/loop לבד, ולא רשימה של משימות מתוזמנות נפרדות, ו-Claude Code מתעלם ממנו בכל פעם שאתם מספקים הנחיה בשורת הפקודה. כדי לתזמן הנחיות נוספות לצידו, השתמשו ב-/loop <prompt> או בקשו מ-Claude ישירות.

Claude מחפש את הקובץ בשני מיקומים, ומשתמש בראשון שהוא מוצא.

נתיבהיקף
.claude/loop.mdרמת הפרויקט. קודם כששני הקבצים קיימים.
~/.claude/loop.mdרמת המשתמש. חל בכל פרויקט שלא מגדיר קובץ משלו.

הקובץ הוא Markdown רגיל בלי מבנה חובה. כתבו אותו כאילו אתם מקלידים את הנחיית /loop ישירות. הדוגמה הבאה שומרת על ענף שחרור תקין:

.claude/loop.md

Check the `release/next` PR. If CI is red, pull the failing job log,
diagnose, and push a minimal fix. If new review comments have arrived,
address each one and resolve the thread. If everything is green and
quiet, say so in one line.

עריכות ב-loop.md נכנסות לתוקף באיטרציה הבאה, כך שאפשר לחדד את ההוראות בזמן שלולאה רצה. כשאין loop.md באף אחד מהמיקומים, הלולאה חוזרת להנחיית התחזוקה המובנית. שמרו על קובץ תמציתי: תוכן מעבר ל-25,000 בתים נחתך.

#עצירת לולאה

במצב קצב עצמי, Claude יכול גם לסיים את הלולאה בעצמו כשהמשימה הושלמה. Claude קורא לכלי ScheduleWakeup עם stop: true, וזה מבטל את ה-wakeup הממתין מיד. אם איטרציה מסתיימת בלי תזמון מחדש ובלי עצירה, Claude Code מתזמן wakeup גיבוי אחד כעבור כ-20 דקות, ומסיים את הלולאה כשגם האיטרציה הזו לא מתזמנת מחדש.

#התנתקות בלי לעצור לולאה

כשאתם מחוברים לסשן רקע ו-Claude במצב המתנה, לחצו על Ctrl+C פעמיים על הנחיה ריקה כדי להתנתק. לולאה בקצב עצמי שממתינה שם לאיטרציה הבאה ממשיכה לרוץ, והאיטרציה הזו מתחילה לפי לוח הזמנים. כדי לעצור את הלולאה, לחצו על Esc לפני ההתנתקות. התנתקות עם Ctrl+C בלי לעצור את הלולאה דורשת Claude Code v2.1.295 או חדש יותר.

#הגדרת תזכורת חד פעמית

לתזכורות חד פעמיות, תארו מה אתם רוצים בשפה טבעית, במקום להשתמש ב-/loop. Claude מתזמן משימה שמופעלת פעם אחת ומוחקת את עצמה אחרי הריצה.

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

Claude מקבע את זמן ההפעלה לדקה ולשעה מסוימות באמצעות ביטוי cron, ומאשר מתי היא תופעל.

#ניהול משימות מתוזמנות ברמת הסשן

בקשו מ-Claude בשפה טבעית להציג או לבטל משימות, או הפנו ישירות לכלים שמתחת.

what scheduled tasks do I have?
cancel the deploy check job

אלה הכלים ש-Claude משתמש בהם:

כלימטרה
CronCreateתזמון משימה חדשה. מקבל ביטוי cron בן 5 שדות, את ההנחיה להרצה, והאם היא חוזרת או מופעלת פעם אחת.
CronListהצגת משימות מתוזמנות עם המזהים שלהן, לוחות הזמנים, זמני הריצה הבאים, וההנחיות.
CronDeleteביטול משימה לפי מזהה.

לכל משימה מתוזמנת יש מזהה בן 8 תווים שאפשר להעביר ל-CronDelete. סשן יכול להחזיק עד 50 משימות מתוזמנות בו זמנית.

#איך משימות מתוזמנות ברמת הסשן רצות

המתזמן בודק כל שנייה אם יש משימות שהגיע זמנן, ומכניס אותן לתור בעדיפות נמוכה. הנחיה מתוזמנת מופעלת בין התורות שלכם, לא בזמן ש-Claude באמצע תשובה. אם Claude עסוק כשמגיע זמן המשימה, ההנחיה ממתינה עד שהתור הנוכחי מסתיים.

כל הזמנים מפורשים לפי אזור הזמן המקומי שלכם. ביטוי cron כמו 0 9 * * * פירושו 9:00 בבוקר בכל מקום שבו אתם מריצים את Claude Code, לא UTC.

#סטיית זמן

משימה מתוזמנת יכולה לרוץ בזמן שונה ממה שלוח הזמנים שלה אומר. אם המשימות של כל סשן היו רצות בדיוק לפי לוח הזמנים, רבות מהן היו קוראות ל-API באותו רגע, ולכן Claude Code מזיז את זמן הריצה של כל משימה. משימות חוזרות רצות באיחור, חוץ ממשימה שרצה כל חמש דקות, שנכתבת */5 * * * *. משימות חד פעמיות שמתוזמנות בשעה עגולה או בחצי שעה רצות קצת מוקדם.

כדי לראות מתי משימה אמורה לרוץ בפעם הבאה, קראו את השורה שמתחת לקריאה של Claude ל-CronCreate בטרמינל. השורה מציגה את הזמן הזה אחרי לוח הזמנים, לדוגמה next run 10:21 AM. כדי לבדוק שוב אחר כך, בקשו מ-Claude להציג את המשימות וחפשו next run בשורות שמתחת לקריאה ל-CronList. זמני הריצה הבאה בשורות האלה דורשים Claude Code v2.1.299 או חדש יותר.

#כמה באיחור רצה משימה חוזרת

אלא אם היא רצה כל חמש דקות, משימה חוזרת מתחילה כל ריצה באיחור של עד חצי מהפער עד הריצה הבאה, ולכל היותר 30 דקות. המשימה שלכם היא אחד משלושת המקרים האלה:

  • ריצות במרווחים שווים: משימה עם פערים שווים, כמו כל שעה, כל יום, או כל 10 דקות, רצה באותו מספר דקות של איחור בכל פעם, כולל כשהסשן במצב המתנה.
  • ריצות במרווחים לא שווים: משימה עם פערים לא שווים, כמו אחת שמתוזמנת ל-:00 ול-:15 בכל שעה, יכולה לרוץ במספר דקות איחור שונה בכל פעם.
  • כל חמש דקות: משימה שנכתבת */5 * * * * לא מעוכבת. ריצה בדיוק חמש דקות אחרי הקודמת הייתה מתחילה אחרי שמטמון הנחיה של חמש דקות פג, ולכן כל ריצה מתחילה 15 שניות מוקדם יותר.

מצאו את לוח הזמנים שלכם בעמודה הראשונה של הטבלה הזו כדי לראות מתי כל ריצה שלו מתחילה.

לוח זמניםמתי כל ריצה מתחילה
כל 5 דקות, נכתב */5 * * * *, וזה מה ש-/loop 5m יוצר4 דקות ו-45 שניות אחרי הריצה הקודמת
כל 10 דקותאיחור של 0 עד 5 דקות
כל 30 דקותאיחור של 0 עד 15 דקות
כל שעה, או בתדירות נמוכה יותר כמו כל יוםאיחור של 0 עד 30 דקות

לדוגמה, 7,37 * * * * מתזמן משימה ל-:07 ול-:37, שהם בהפרש של 30 דקות, ולכן האיחור שלה הוא איפשהו בין 0 ל-15 דקות. אם האיחור של המשימה הזו הוא 14 דקות, היא רצה ב-:21 וב-:51 בכל שעה. שינוי לוח הזמנים לדקה אחרת מזיז את זמן הריצה, ועדיין מתווסף איחור מעליו.

#מתי משימה חד פעמית רצה מוקדם

משימה חד פעמית שמתוזמנת ל-:00 או ל-:30 רצה עד 90 שניות מוקדם. Claude Code לא מזיז משימה חד פעמית שמתוזמנת לכל דקה אחרת, ולכן כשהתזמון חשוב, תזמנו אותה מחוץ לשעה העגולה ולחצי השעה: 3 9 * * * במקום 0 9 * * *.

#תפוגה אחרי שבעה ימים

משימות חוזרות פוקעות אוטומטית 7 ימים אחרי היצירה. המשימה מופעלת פעם אחרונה, ואז מוחקת את עצמה. זה מגביל כמה זמן לולאה שנשכחה יכולה לרוץ. אם צריך שמשימה חוזרת תימשך יותר, בטלו אותה וצרו אותה מחדש לפני שהיא פוקעת, או השתמשו במשימות מתוזמנות בענן או במשימות מתוזמנות ב-Desktop לתזמון עמיד.

#מדריך לביטויי cron

CronCreate מקבל ביטויי cron סטנדרטיים בני 5 שדות: minute hour day-of-month month day-of-week. כל השדות תומכים בתווי הכל (*), ערכים בודדים (5), צעדים (*/15), טווחים (1-5), ורשימות מופרדות בפסיקים (1,15,30).

דוגמהמשמעות
*/5 * * * *כל 5 דקות
0 * * * *כל שעה בשעה העגולה
7 * * * *כל שעה ב-7 דקות אחרי השעה
0 9 * * *כל יום ב-9:00 בבוקר לפי הזמן המקומי
0 9 * * 1-5ימי חול ב-9:00 בבוקר לפי הזמן המקומי
30 14 15 3 *15 במרץ בשעה 14:30 לפי הזמן המקומי

שדה day-of-week משתמש ב-0 או 7 ליום ראשון ועד 6 ליום שבת. תחביר מורחב כמו L, W, ?, וכינויים כמו MON או JAN אינו נתמך.

כשגם day-of-month וגם day-of-week מוגבלים, תאריך תואם אם אחד מהשדות תואם. זה לפי הסמנטיקה הסטנדרטית של vixie-cron.

#השבתת משימות מתוזמנות ברמת הסשן

הגדירו CLAUDE_CODE_DISABLE_CRON=1 בסביבה כדי להשבית את המתזמן לגמרי. כלי ה-cron ו-/loop נעשים לא זמינים, וכל משימה שכבר תוזמנה מפסיקה לרוץ. ראו משתני סביבה לרשימה המלאה של דגלי ההשבתה.

#מגבלות

לתזמון בהיקף הסשן יש אילוצים מובנים:

  • משימות מופעלות רק בזמן ש-Claude Code רץ ובמצב סרק. סגירת הטרמינל, או מתן לסשן להסתיים, עוצרת את ההפעלה שלהן. העברת הסשן לרקע מעבירה משימות /loop לסשן רקע, שממשיך לרוץ בלי טרמינל.
  • אין השלמה של הפעלות שהוחמצו. אם הזמן המתוזמן של משימה עובר בזמן ש-Claude עסוק בבקשה ארוכה, היא מופעלת פעם אחת כש-Claude חוזר למצב סרק, לא פעם אחת לכל מרווח שהוחמץ.
  • בסשן רקע, לולאה בקצב עצמי נעצרת אם מועד ההתעוררות הבא שלה מגיע בזמן שתהליך הסשן לא רץ, למשל אחרי קריסה. כשהתהליך מתחיל שוב, התמליל מציג הודעה שההתעוררות לא תופעל. כדי להמשיך את הלולאה, השיבו לסשן ובקשו מ-Claude להמשיך להריץ אותה.
  • כשממשיכים סשן עם claude --resume או claude --continue, Claude Code משחזר את המשימות שתוזמנו עם CronCreate, חוץ ממשימות חוזרות שפג תוקפן ומשימות חד-פעמיות שזמן התזמון שלהן עבר. לולאת /loop בקצב עצמי לא משוחזרת, אז הריצו /loop שוב כדי להפעיל אותה מחדש.
  • משימה חוזרת ששוחזרה לא מופעלת עבור ההרצות שהוחמצו בזמן שהסשן לא רץ. ההרצה הבאה שלה היא הראשונה שמגיע מועדה אחרי שממשיכים, ו-jitter חל על ההרצה הזו.
  • כשממשיכים עם claude --resume או claude --continue, Claude Code לא מפעיל מחדש את פקודות Bash ברקע ואת המוניטורים שרצו כשהסשן הסתיים. אם עדיין צריך אחד מהם, בקשו מ-Claude להפעיל אותו שוב.
  • כששליפת feature flags כבויה, Claude Code שומר משימה שביקשתם להשאיר בין סשנים בקובץ .claude/scheduled_tasks.json של הפרויקט. כשספריית .claude או הקובץ הזה הם symlink, Claude Code מחזיר שגיאה במקום לתזמן את המשימה. משימה שמורה רצה רק בתיקיית הפרויקט שבה יצרתם אותה. אם מעתיקים את הקובץ לתיקייה אחרת, למשל worktree חדש, הסשנים שם מציגים את המשימות שהועתקו אבל לא מריצים אותן, אז צרו את המשימה שוב בתיקייה הזו.

לאוטומציה מונעת cron שצריכה לרוץ בלי השגחה: