יש לי קוד לשלוחת api שמבצע לולאה על מערך אבל בגלל שהמערך ארוך אז זה טוען את הדף יותר מדי זמן כך שימות המשיח אומרים "אין מענה משרת api"
-
@ivrפון
הסיבה שאתה מקבל מימות תגובה 'אין מענה' זה בגלל שהסקריפט הגיע למגבלה של טיימאאוט ולכן חוזרת תגובה ריקה, אתה צריך פשוט להגדיל את הטיימאאוט
המשפט שכתבת "האם יש פקודה בphp להפסקת טעינת הדף אבל המשך ביצוע הקוד", זה משפט לא הגיוני, זה ממש לאכול את העוגה ולהשאיר אותה שלמה.. -
פוסט זה נמחק! -
@ivrפון כתב ביש לי קוד לשלוחת api שמבצע לולאה על מערך אבל בגלל שהמערך ארוך אז זה טוען את הדף יותר מדי זמן כך שימות המשיח אומרים "אין מענה משרת api":
@amp-Software-0 לא כל כך יודע על מה אתה מדבר אבל גם דרך הדפדפן זה כותב שגיאה אבל רק כשהמערך גדול
זה בעצם קוד להעתקת מערכת הוא מבצע לולאה עד שיש לי במערך את כל התקיות והקבצים במערכת ואז מבצע על זה לולאה ומוריד את הקובץ מעלה מוריד מעלה וכו'בד"כ הטיים האוט מוגדר לדקה בדיוק אתה צריך להגדיל אותו...
-
@ivrפון
אם חוזרת שגיאה אז הסיבה לתשובה של 'אין מענה משרת API', תצרף את השגיאה ונראה ממה זה נגרם
בכל מקרה אין סיבה שיהיה הבדל בין ימות המשיח לדפדפן, טיימאוט זה הגבלה של השרת על משך הזמן שהקוד יכול לרוץ (ברירת מחדל בהרבה שרתים זה 30 שניות), יתכן מאוד שכשהמערך ארוך וכולל העלאה והורדה של הקבצים זה לוקח הרבה זמן
אגב אם מדובר על קוד שלוקח לו לרוץ כמה דקות טובות יתכן שעדיף לכתוב בשפה אסינכרונית, כי ב PHP אם תנתק את השיחה באמצע הקוד יעצר, במצב כזה אתה גם יכול להחזיר תגובה מייד והקוד ימשיך לרוץ (הפתרון שחיפשת ב PHP) -
פוסט זה נמחק! -
@ivrפון
בהגדרות של שרת האינטרנט
אם אתה לא יודע איך לתפעל את זה, תכתוב איזה שרת אינטרנט אתה משתמש ואתן לך את ההגדרה הנצרכת
אתה יכול לנסות להגדיר את הטיימאוט ברמת הקוד, זה יכול לעזור אם אין לך הגבלה נוספת חוץ מזה
תוסיף בתחילת הקוד (300 זה כמות השניות)set_time_limit(300);
-
@amp-Software-0 @ivrפון
קחו בחשבון שימות המשיח אחרי דקה וחצי זה אומר אין מענה משרת הapi וזה קורה גם אם בשרת שלך אתה יכול לטעון עד 10 דק' זה הגבלה שהם עשו... -
פוסט זה נמחק! -
@ivrפון
זה בהחלט פתרון טוב, אבל אז לא צריך מתווך אלא פשוט תבצע את הקריאה ישירות לקוד האסינכורני
לחילופין אפשר לעשות את זה באמצעות תיווך בלי קוד אסינכורני, להגדיר שה PHP לדוגמא יוצר קובץ בשרת או בדאטה בייס שמכיל את נתוני הפעולה, ובמקביל אתה מריץ קוד שרץ כל דקה באמצעות crontab וכדומה שבודק אם יש משימות לביצוע, ומבצע אותם -
פוסט זה נמחק! -
אפשרי לבצע שאחרי דקה וחצי ייכנס שוב לשלוחה ויבדוק שוב
-
@פיסטוק-פרווה לא הבנתי?