הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שיטה להרץ קובץ לזמן ארוך (https://hosts.co.il/forums/showthread.php?t=99781)

Ori The Man 11-09-12 16:36

שיטה להרץ קובץ לזמן ארוך
 
אני צריך להריץ לולאת while ארוכה (בסביבות ה 500 פעם) עכשיו בשרת יש מגבלה של 30 שניות והוא על safe_mode מה שאומר שאי אפשר גם להגדיר ע"י ini_set תוספת זמן..
עשיתי מעין כמו שימוש בדפים עם LIMIT וכל פעם שהוא מסיים הוא עובד עובר חזרה לאותו דף עם GET שונה שאומר לו באיזה "דף" הוא נמצא.. אז הוא כאילו טוען את הדף מחדש ולא רץ הרבה זמן
יש שיטה יותר טובה להרצת קובץ למשך זמן ארוך?

Haimz 11-09-12 16:48

תנסה לדבר עם בעל השרת.. זה לא משהו שאתה יכול לעקוף לדעתי,
אם אתה רוצה משהו באמת נוח, לך על זה:
תצור עמוד HTML שיציג לך כמה תוצאות עליך להריץ.
תחלק אותם לעמודים (בערך 20 בכל עמוד)
ומשם, תריץ קובץ AJAX שרץ על קובץ ותדפיס על העמוד, ברגע שזה מסיים, זה מציג שעמוד X מתוך Y הושלם, וממשיך לעמוד השני..
ככה שלא תצטרך לרענן :)

Ori The Man 11-09-12 17:12

ציטוט:

נכתב במקור על ידי HHaim (פרסם 856724)
תנסה לדבר עם בעל השרת.. זה לא משהו שאתה יכול לעקוף לדעתי,
אם אתה רוצה משהו באמת נוח, לך על זה:
תצור עמוד HTML שיציג לך כמה תוצאות עליך להריץ.
תחלק אותם לעמודים (בערך 20 בכל עמוד)
ומשם, תריץ קובץ AJAX שרץ על קובץ ותדפיס על העמוד, ברגע שזה מסיים, זה מציג שעמוד X מתוך Y הושלם, וממשיך לעמוד השני..
ככה שלא תצטרך לרענן :)

זה בערך מה שעשיתי.. עשיתי header לקובץ עצמו שמשנה רק GET 1 שזה יענו העמוד וזה הוא יודע לעשות את ה LIMIT-אותו עיקרון כמו ביצירת עמודים

תכלס זה לא השרת שלי (לי יש VPS אז יש לי איזה גמישות שאני רוצה :) ) זה לקוח..

בניה 11-09-12 17:46

אל תאנוס את השרת בצורה הזו...סתם יעשה לך בעיות

yonatan 11-09-12 18:04

נשמע לי שאתה צריך VPS בשביל מה שאתה מנסה לעשות.
גם אם תעשה עם AJAX , עדיין זה יקרע את השרת ויחסמו לך את החשבון אם המנהל שרת יראה CPU SPIKE מהחשבון.

Ori The Man 11-09-12 19:20

יש לי VPS..
שוב,זה ללקוח..
בגלל זה אני בכללי גם חושב על שיטות לשליחה אפילו מייל,שנשלח לאלפים איך אפשר לחסוך משאבים או לעשות צורה של הרצה יעילה

בניה 11-09-12 19:36

אלו פעולות להרצה בCLI, לא דרך הWEB SERVER
הדבר שיותר בעייתי עם שליחת מיילים זה שסביר להניח שאתה תכנס לBLACK LISTS
לרשימות תפוצה של יותר מכמה מאות מומלץ פשוט להשתמש בשרותים חיצוניים

דניאל 11-09-12 22:23

ציטוט:

נכתב במקור על ידי Ori The Man (פרסם 856753)
שוב,זה ללקוח..

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

משמע,
או שהוא עובר לאחסון שיותר מתאים לצרכים שלו,
או שאתה בונה בהתאם למגבלות של חברת האחסון.

"לאנוס" (מונח שהשתמשו בו אחד החבר'ה מעלי) את חברת האחסון שלו זה לא פתרון - ורק יזיק ללקוח בטווח הארוך.

Ori The Man 12-09-12 01:43

ציטוט:

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

משמע,
או שהוא עובר לאחסון שיותר מתאים לצרכים שלו,
או שאתה בונה בהתאם למגבלות של חברת האחסון.

"לאנוס" (מונח שהשתמשו בו אחד החבר'ה מעלי) את חברת האחסון שלו זה לא פתרון - ורק יזיק ללקוח בטווח הארוך.

צודק, בגלל זה אני בחיפושים :)

IgalSt 12-09-12 16:33

ציטוט:

נכתב במקור על ידי Ori The Man (פרסם 856722)
אני צריך להריץ לולאת while ארוכה (בסביבות ה 500 פעם) עכשיו בשרת יש מגבלה של 30 שניות והוא על safe_mode מה שאומר שאי אפשר גם להגדיר ע"י ini_set תוספת זמן..
עשיתי מעין כמו שימוש בדפים עם LIMIT וכל פעם שהוא מסיים הוא עובד עובר חזרה לאותו דף עם GET שונה שאומר לו באיזה "דף" הוא נמצא.. אז הוא כאילו טוען את הדף מחדש ולא רץ הרבה זמן
יש שיטה יותר טובה להרצת קובץ למשך זמן ארוך?

כמו שאמרו פה, "לאנוס" את השרת בצורה כזאת זה לא טוב ולא נכון.

בעבר הייתי צריך להריץ סקריפטים ארוכים על שרתים (היו באתר הזה מספר שרתי ווב) ועדיין על מנת לא להעמיס יותר מדיי עליהם השתמשתי בשיטה שגם אתה הגעת אליה. בצורה כזאת אתה כל פעם עושה chunk של פעולות ונותן לשרת כמה רגעים "להתאושש". אומנם כתבתי להתאושש עם גרשיים, אבל תחשוב על זה שכאשר השרת עמוס הוא מתחיל לצבור תורים של פעולות שהוא צריך לבצע: שאילות להריץ ב-SQL, פעולות ב-CPU, כתיבות ודיסק וכו'. כשאתה נותן לו כל כמה שניות מספר שניות התאוששות כאלה (אם השרת לא עמוס תמידית) הוא יסיים את התור שלו ותוכל להתחיל מתור קצר שוב.


כל הזמנים הם GMT +2. הזמן כעת הוא 21:55.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ