הגדרת Cron למשימות אוטומטיות ב-1C-Bitrix

כאשר סוכני 1C-Bitrix רצים דרך בקשות, האתר מאט, והודעות דואר ועדכוני נתונים מתעכבים. אנו מגדירים את ה-cron של המערכת כך שמשימות אוטומטיות ירוצו בלוח זמנים קבוע ללא תלות בתנועה. הצוות שלנו מספק את הפרויקט במפתח מלא—מבדיקת המצב הנוכחי ועד ליישום ותמיכה שוטפת, תוך הבטחת פעילות יציבה ללא החמצת מועדים.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הגדרת Cron למשימות אוטומטיות ב-1C-Bitrix
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

ללא cron מוגדר כראוי ב-Bitrix, סוכנים מפסיקים לעבוד: מיילים לא נשלחים, מחירים מ-1C לא מתעדכנים, עגלות שפג תוקפן לא נמחקות. בפרויקטים של Bitrix, בעיה אופיינית היא מצב הסוכנים 'via hits' (הפעלה בכל בקשה של משתמש). זה יוצר עיכובים בלתי צפויים: פעולות סוכן עתירות משאבים (חישוב מחירים מחדש, שליחת ניוזלטרים) מבוצעות רק כשיש תנועה, והאתר חווה אפס תנועה בלילה, מה שמותיר סוכנים לא מבוצעים. נתקלנו בפרויקטים שבהם מיילי תשלום התעכבו עד 4 שעות (80% מההזמנות נפגעו), ותור המיילים ב-b_event הצטבר עד 5000 הודעות. זה הוביל לירידה בהמרות — לקוחות לא קיבלו הודעות על סטטוס הזמנה. הפתרון הנכון היחיד הוא להעביר סוכנים ל-cron מערכתי. במאמר זה, נבחן כיצד להגדיר cron לסביבת production, להימנע מטעויות נפוצות, ולהפחית עיכובים ל-1-2 דקות.

מצבי הפעלת סוכנים: hits לעומת cron

Bitrix תומך בשני מצבים — via hits ו-via cron. מעבר: הגדרות → הגדרות מוצר → סוכנים.

מצב Hits (ברירת מחדל): סוכנים רצים על בקשות רגילות לאתר. החיסרון — עיכוב בביצוע תלוי בתנועה. בלילה, כשצריך להריץ אינדוקס או לשלוח ניוזלטר, ייתכן שלא יהיו hits כלל. כתוצאה מכך, סוכנים מצטברים ודפים נטענים לאט.

מצב Cron: סוכנים רצים דרך דמון התזמון של המערכת ללא תלות בתנועה. זו האפשרות הנכונה היחידה ל-production: סוכנים מבוצעים בדיוק לפי לוח זמנים מבלי להשפיע על חוויית המשתמש.

איזה מצב אמין יותר?

מאפיין מצב Hits מצב Cron
תלות בתנועה מלאה אין
דיוק בביצוע נמוך (עד מספר שעות עיכוב) גבוה (בתוך מרווח ההפעלה)
עומס על השרת גלים בהפעלות המוניות אחיד
סיכון לפספוס סוכנים גבוה כשאין hits מינימלי
המלצה רק לפיתוח ל-production

מצב Cron טוב פי 10 ממצב Hits בדיוק ביצוע הסוכנים. חיסכון בזמן בהפעלה ידנית של סוכנים חוסך בתקציב הניהול.

הגדרת cron: מדריך שלב אחר שלב

  1. העבר את מצב הסוכנים בלוח הניהול ל-'cron'.
  2. זהה את משתמש שרת האינטרנט (בדרך כלל www-data או bitrix).
  3. הוסף משימה ל-crontab של משתמש זה:
*/5 * * * * /usr/bin/php -f /var/www/html/bitrix/modules/main/tools/cron_events.php >> /var/log/bitrix_cron.log 2>&1 

מרווח הפעלה — בין 1 ל-5 דקות. יותר מכך אין צורך: לרוב הסוכנים יש תקופת מינימום של דקה אחת, והפעלות תכופות יותר לא יעזרו.

הנתיב ל-PHP חייב להתאים לזה שבו משתמש שרת האינטרנט. בדוק: */5 * * * * /usr/bin/php -f /var/www/html/bitrix/modules/main/tools/cron_events.php >> /var/log/bitrix_cron.log 2>&1 או which php. אם יש מספר גרסאות PHP על השרת, השתמש בנתיב המלא, לדוגמה: php -v.

  1. ודא שקובץ הלוג נוצר ואינו ריק: /usr/bin/php8.1.

משימות cron נוספות

אם אתה משתמש במודול החיפוש או בניתוח האינטרנט, הוסף משימות נפרדות:

0 3 * * * /usr/bin/php -f /var/www/html/bitrix/modules/search/lib/crawler.php
0 2 * * * /usr/bin/php -f /var/www/html/bitrix/modules/statistic/tools/update_daily_counter.php

לאתרים ב-Bitrix Site Manager עם מודול המכירות — הפעל עיבוד הזמנות בנפרד:

*/10 * * * * /usr/bin/php -f /var/www/html/bitrix/modules/sale/lib/internals/agent.php 

אם אתה משתמש ב-phpmailer, תור המיילים דורש cron למשלוח בזמן. לאתרים עם אינטגרציית 1C, הגדר cron ייעודי להחלפת 1C כדי למנוע עיכובים בסנכרון נתונים.

דוגמה למשימות אופייניות:

משימה פקודה תדירות
סוכנים ראשיים cron_events.php 2–5 דקות
סורק חיפוש crawler.php פעם ביום
עיבוד הזמנות sale/lib/internals/agent.php 10 דקות
שליחת הודעות מייל דרך הסוכן הראשי 1–2 דקות

למה cron חשוב לחנות מקוונת?

חנויות מקוונות תלויות בעיבוד הזמנות בזמן, עדכוני מלאי ושליחת הודעות. אם סוכנים מתבצעים באיחור, לקוחות לא מקבלים מיילי תשלום, ומנהלים לא מקבלים התראות על הזמנות חדשות. נתקלנו בפרויקט שבו בגלל מצב hits, מיילים התעכבו ב-4 שעות. לאחר הגדרת cron, העיכוב ירד ל-1–2 דקות.

מקרה בוחן

אחד הלקוחות שלנו, חנות מקוונת במהדורת Small Business, המתארחת על שרת וירטואלי. תלונה: מיילי תשלום מגיעים באיחור של 2–4 שעות, לפעמים לא מגיעים כלל. אבחון: סוכנים רצו במצב hits, ללא תנועה בלילה. תור המיילים ב-b_event הצטבר, והמודול הראשי לא הופעל. פתרון: מעבר ל-cron עם מרווח של 2 דקות, הוספת משימת עיבוד תור מיילים. לאחר השינוי, מיילים נשלחים תוך 2 דקות מהאירוע.

איך לבדוק אם cron עובד?

בדוק מתי סוכנים בוצעו לאחרונה: בטבלת b_agent במסד הנתונים, בשדה LAST_EXEC. אם הערך לא מתעדכן, cron לא עובד.

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

כמו כן, עיין בתיעוד הרשמי של Bitrix להגדרת סוכנים כדי לוודא פרמטרים. קרא עוד על cron בויקיפדיה.

טעויות נפוצות בהגדרת cron
  • נתיב PHP שגוי (במיוחד בשרתים עם מספר גרסאות).
  • שכחת להעביר את מצב הסוכנים בלוח הניהול.
  • לא יצרת קובץ לוג או הרשאות כתיבה לא מספקות.
  • סוכנים נעולים ב-b_agent (IS_LOCK = Y) לאחר קריסה — יש צורך בניקוי ידני.

מה כוללת עבודת ההגדרה

  • ניתוח תצורה נוכחית: בדיקת מצב סוכנים, הרכב סוכנים, קיומם של נעילות.
  • הגדרת crontab: הוספת משימות עם נתיבי PHP נכונים, רישום לוג.
  • בדיקת כל הסוכנים: הבטחה שכל סוכן רץ בזמן.
  • אופטימיזציה של תדירות: התאמת מרווחים לעומס.
  • תיעוד: תיאור כל המשימות שנוספו, תוכניות הפעלה מחדש.
  • ייעוץ: מענה על שאלות, הדרכה לשימוש ב-cron.

לוחות זמנים ועלות

עם ניסיון של למעלה מ-7 שנים ב-Bitrix ו-60+ הגירות cron מוצלחות, אנו מבטיחים ביצוע אמין של סוכנים. הגדרת cron לשרת טיפוסי אורכת 1–2 שעות, בעלות של 100 עד 200 דולר. לפרויקטים מורכבים, עד 400 דולר. העלות מחושבת באופן אישי, בהתאם למורכבות. צור קשר להערכה מדויקת של הפרויקט שלך — נמצא את הפתרון האופטימלי.

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