ריסט ל-cron בדרופל 6

פתרון לבעיית Attempting to re-run cron while it is already running

Cron הוא מתזמן משימות בלינוקס (גם ביוניקס) שבאמצעותו אפשר לבקש מסקריפטים שונים לרוץ בזמנים שונים. ל-Cron יש חשיבות גדולה בדרופל, שם הוא יכול לשמש במודולים שונים למטרות שונות. בדרופל 6 אנו משתמשים ב hook_cron על מנת להריץ סקריפטים שאנו רוצים שהם ירוצו ב-Cron.

לפעמים, מסיבות שונות, כאשר אנו מפתחים מודול שמשתמש ב-Cron, טעות אחת מצידנו יכולה לתקוע את ה-Cron של דרופל. כלומר, מערכת דרופל עדיין חושבת שה-Cron רץ ולכן כאשר אנו מנסים להריץ אותו מחדש אנו רואים אזהרה ש- Cron failed to run בדף הסטטוס של דרופל. כאשר אנו מסתכלים בלוג של דרופל אנו רואים alert שאומר:
Attempting to re-run cron while it is already running.

במקרה הזה, עושים את הפעולות הבאות כדי 'לשחרר' את ה-cron התקוע. לא לפני שבאמת מוודאים שהסקריפט שכתבנו לא רץ עדיין.

נכנסים ל-MySQL ומכניסים את הפקודות הבאות:


USE YOURDATABASENAME;
DELETE FROM variable WHERE name = 'cron_semaphore';
DELETE FROM variable WHERE name = 'cron_last';

ואחרי זה מנקים את ה-cache של דרופל. מרפרשים את דף הסטטוס – ודרופל יטען שה-Cron מעולם לא רץ – הריצו אותו והבעיה נפתרה (בתנאי שאין איזה סקריפט שרץ ב-Cron ותוקע את העסק).

פוסטים נוספים שכדאי לקרוא

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

גלילה לראש העמוד