2 שאלות פשוטות

Mr Boggy Man

New member
2 שאלות פשוטות

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

אמיר ט

New member
2 תשובות

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

orenphp

New member
בקשר לתשובה השנייה

בטח שיש אפשרות, זה מה שקורה שאתה לוחץ על STOP בדפדפן באמצע שהסקריפט עולה. על מנת לוודא שהסקריפט ירוץ ברגע שנעשתה פנייה (לא משנה גם אם היוזר ינסה לעצור את עליית העמוד) תוסיף את הקוד הבא בתחילת הדף:
ignore_user_abort(true);​
קצת מידע: http://www.php.net/manual/he/function.ignore-user-abort.php
 

orenphp

New member
ועוד טיפה להבהיר את עצמי

ברגע שנעשתה פנייה, הסקריפט יתחיל לרוץ על השרת, אך ברגע שהיוזר ילחץ על STOP הconnection מול השרת יגמר ולכן הסקריפט יפסיק את ריצתו (אך כמובן אם עד שלחצת על STOP הסקריפט הכניס 1000 שורות למסד הם אכן יהיו שם - אלא אם תשתמש בטרנזקציה). לפעמים כמובן, אתה רוצה לדאוג שהסקריפט יעשה את שלו גם אם היוזר יקיש על ביטול הפנייה (STOP) ואז תשתמש בקוד שכתבתי מקודם וניתן לשלב אותו(ואפילו מומלץ) עם:
set_time_limit(0);​
אשר דואג שהסקריפט לא ימות אחרי 60 שניות של ריצה. מקווה שהבהרתי את עצמי.
 

Mr Boggy Man

New member
תודה רבה

אני אבדוק את העניין. בנוסף אני משתמש בשרת חינמי ככה שאני לא יודע אם אפשר לעשות שם crontab. אבל אני אחפש מידע בגוגול וב man של הפקודה (כן...אני משתמש לינוקס)
 
למעלה