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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   PHP Cron Jobs (https://hosts.co.il/forums/showthread.php?t=65414)

Daniel 21-07-08 20:40

PHP Cron Jobs
 
אני מעוניין לעשות Cron Jobs - אך בעזרת PHP בלבד. תיהיה לי טבלה במסד המכילה מתי זה יפעל - בדיוק כמו ב-DA. עד עכשיו זה דיי פשוט, אבל, נגיד ואני מעוניין שזה יפעל כל 8 שעות - נגיד. איך אני אעשה את זה? זה אפשרי בכלל?

DvirCohen 21-07-08 21:07

אני לא חושב שאפשר לעשות דבר כזה בלי שמישהו יגלוש באתר.
אני די בטוח שאיפשר, כי הרי קוד הPHP רץ רק ברגע שמישהו מגיע לקובץ, ואם אפחד לא גולש באתר הקובץ לא נפתח.

אתה יכול לעשות למשל משהו כל 8 שעות, אבל אתה תצטרך להיכנס לקובץ כל 8 שעות כדי שהבדיקה תתבצע..

זאת דעתי

Daniel 21-07-08 21:12

ציטוט:

נכתב במקור על ידי DvirCohen (פרסם 652498)
אני לא חושב שאפשר לעשות דבר כזה בלי שמישהו יגלוש באתר.
אני די בטוח שאיפשר, כי הרי קוד הPHP רץ רק ברגע שמישהו מגיע לקובץ, ואם אפחד לא גולש באתר הקובץ לא נפתח.

אתה יכול לעשות למשל משהו כל 8 שעות, אבל אתה תצטרך להיכנס לקובץ כל 8 שעות כדי שהבדיקה תתבצע..

זאת דעתי

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


זה לא אפשרי לעשות ממש CJ, אבל אני שואל האם לפי דעתכם יש רעיון תאורטי שיכול לעזור

דניאל 21-07-08 21:23

אגב אגב,
לDA כן יש CJ (של המע' עצמה).

Pizza 21-07-08 22:27

שמתבסס על cron-ים שהמערכת מריצה (מוסיפה אותם בזמן ההתקנה)

DanielS 21-07-08 22:33

ציטוט:

נכתב במקור על ידי MasterT (פרסם 652491)
אני מעוניין לעשות Cron Jobs - אך בעזרת PHP בלבד. תיהיה לי טבלה במסד המכילה מתי זה יפעל - בדיוק כמו ב-DA. עד עכשיו זה דיי פשוט, אבל, נגיד ואני מעוניין שזה יפעל כל 8 שעות - נגיד. איך אני אעשה את זה? זה אפשרי בכלל?

מה הבעיה ?
אתה שם כל כמה זמן אתה רוצה לעדכן.
ומוסיף שדה של הזמן האחרון שזה עודכן ואז פשוט בודק אם עברו מאז 8 שעות :)
פשוט וקל.

ולבעיה שאם אף אחד לא נכנס גם כן לא בעיה.
אתה פשוט בודק אם נגיד עברו 8 שעות פעמיים נגיד חח אז אתה מריץ פעמיים . כאילו זה התעדכן כל 8 שעות באמת כשלא נכנסו :)

Daniel 22-07-08 00:38

ציטוט:

נכתב במקור על ידי DanielS (פרסם 652529)
מה הבעיה ?
אתה שם כל כמה זמן אתה רוצה לעדכן.
ומוסיף שדה של הזמן האחרון שזה עודכן ואז פשוט בודק אם עברו מאז 8 שעות :)
פשוט וקל.

ולבעיה שאם אף אחד לא נכנס גם כן לא בעיה.
אתה פשוט בודק אם נגיד עברו 8 שעות פעמיים נגיד חח אז אתה מריץ פעמיים . כאילו זה התעדכן כל 8 שעות באמת כשלא נכנסו :)

אני אומר, ללא! ללא, בלי.

זה בסדר כאשר כמו שאמרתי - כשזה תלוי-משתמש. אבל כאשר אני רוצה שכל 8 שעות.... זה ישלח לי מייל?

Inet 22-07-08 00:45

אין אפשרות...

Daniel 22-07-08 01:00

ציטוט:

נכתב במקור על ידי Inet (פרסם 652565)
אין אפשרות...

דווקא עכשיו חשבתי על רעיון. אתה צריך פעם ראשונה להפעיל את זה - ולשים לזה אינסוף max_execution_time. זה יעשה sleep למשך זמן של 8 שעות, ויעשה את הפעולה. והרעיון שגם כשהמשתמש יוצא - הסקריפט עדיין ממשיך. עכשיו, כל 8 שעות זה "מודיע" שהוא עשה את הבדיקה. המערכת כל פעם שנכנסים אליה - בודקת אם הוא "דיווח" כראוי. למה? כי יכול להיות שעשו ריסטרט לשרת. אם הוא לא דיווח כראוי - אז זה מפעיל אותו מחדש. מה דעתכם? האם סקריפט שיעשה sleep למשך 8 שעות יתפוס משאבים על השרת?

mlnn 22-07-08 01:03

אפשר להריץ סקריפט אינסופי בPHP, אבל כנראה שהשרת יעצור אותו מתישהו.

Daniel 22-07-08 01:06

ציטוט:

נכתב במקור על ידי mlnn (פרסם 652573)
אפשר להריץ סקריפט אינסופי בPHP, אבל כנראה שהשרת יעצור אותו מתישהו.

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


כי סקריפט "אינסופי" נעצר אחרי 30 שניות - max_execution_time. אז אם נשנה את ה-max_execution_time למספר מאוד גבוהה...

דניאל 22-07-08 11:20

"אינסופי"=LOOP

אם אפשרי? אפשרי (למרות הגדרות timeout שקיימות בapache וב-php),
קח בחשבון שאם תגרום נזק מכוון לשרת.. לא תשאר עליו הרבה זמן.

Daniel 22-07-08 16:03

ציטוט:

נכתב במקור על ידי TelecarT (פרסם 652649)
"אינסופי"=LOOP

אם אפשרי? אפשרי (למרות הגדרות timeout שקיימות בapache וב-php),
קח בחשבון שאם תגרום נזק מכוון לשרת.. לא תשאר עליו הרבה זמן.

מכיוון שאתה בעל שרת - בשרתים אצלך בהם אין safe mode, האם במידה ולקוח ישתמש בזה כתחליף ל-Cron Jobs, וכל 8 שעות לדוגמא - הסקריפט.... ישלח 2-3 מיילים. אין סיבה שתחסום את זה, לא?

ונלך יותר רחוק, יש לבעל השרת את הכלים לגלות בכלל שהסקריפט רץ?

דניאל 22-07-08 20:15

ציטוט:

נכתב במקור על ידי MasterT (פרסם 652758)
מכיוון שאתה בעל שרת - בשרתים אצלך בהם אין safe mode, האם במידה ולקוח ישתמש בזה כתחליף ל-Cron Jobs, וכל 8 שעות לדוגמא - הסקריפט.... ישלח 2-3 מיילים. אין סיבה שתחסום את זה, לא?

ונלך יותר רחוק, יש לבעל השרת את הכלים לגלות בכלל שהסקריפט רץ?

אין סיבה שייחסם במידה והוא לא גורם לעומס חריג על השרת,

ו..כן, לבעל השרת יש את כל הכלים :)

Inet 22-07-08 20:41

ציטוט:

נכתב במקור על ידי TelecarT (פרסם 652820)
אין סיבה שייחסם במידה והוא לא גורם לעומס חריג על השרת,

ו..כן, לבעל השרת יש את כל הכלים :)

זה יקח כמות משאבים גדולה לפי דעתי....

ה "סליפ" מבצע מבדיקה כל מהזמן של מה השעה... ולכן זה כמות משאבים גדולה..

כל פעם קצת - בסוף החודש זה מצתבר

Rom 22-07-08 21:06

יש לך Cron Jobs בשרת?
אם כן תוכל לבנות דף, שכל דקה, חצי שעה, או שעה ירוץ, ויבדוק אם עברו 8 שעות מהפעם האחרונה שרץ סקריפט X.
וככה תוכל לבנות לעצמך Cron Jobs מותאם אישית מבלי לגשת כל פעם ללוח בקרה ולהוסיף מידע.

Shon12 22-07-08 21:07

בנוגע לבעייה של להריץ את הקובץ אפשר לשלוח סוקטים, וזה יפעיל אותו - אני טועה?:S

Rom 22-07-08 21:40

אבל אז צריך תוכנה חיצונית..

Pizza 23-07-08 00:55

רוצה פתרון קצת הזוי?

מה שדרוש לך כאן זה שהדף יורץ בצורה שוטפת כדי שהטריגר על השעה
ירוץ בתזמון כמה שיותר קבוע.

אפשר לעשות עמוד PHP שהפלט שלו הוא איזשהי תמונה, ולהגדיר אותה בחתימה בהרבה
פורמים,
וכך כל פעם שהתמונה תורד ע"י אחרים - הדף יורץ :) [ואפשר גם תמונה ריקה]

בהצלחה ;)


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

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