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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 04-04-14, 20:19   # 1
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

Sleep ב PHP

שלום.
אני מעוניין שתעשה פעולה כל 5 דקות.
יש לי דף שנקרא abc.php ושם נמצאת הפעולה.
את הדף הזה אני מכליל כל 5 דקות בדף שנקרא test.php, אני מעוניין שאבצע כניסה ל test.php ומאותו רגע הפעולה שבדף abc תתבצע כל 5 דקות 3 פעמים, כלומר תתבצע ברגע הכניסה, לאחר 5 דקות תתבצע שוב ולאחר 5 דקות תתבצע שוב, כלומר 3 פעמים ברבע שעה לצורך הדוגמא.

PHP קוד:

<?php
include('abc.php');
sleep(300);
include(
'abc.php');
sleep(300);
include(
'abc.php');
?>
משום מה הפעולה מתרחשת רק בפעם הראשונה..לצורך העניין מה שיש ב abc.php זה למשל פקודת mail שתשלח אימייל מן הסתם.

מדוע?
אולי הדף "מת" אחרי דקה, שתיים, 4?
אשמח לעזרה..

תודה.
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743

Last edited by dor77; 04-04-14 at 20:21..
  Reply With Quote
ישן 04-04-14, 20:34   # 2
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

תגדיר פונקציה ותריץ אותה בלולאה - אחרי כל ריצה הלולאה תחכה X זמן ותרוץ שוב, עד 3 פעמים.
בנוסף, תבטל את מגבלת זמן הריצה של הסקריפט: http://davidwalsh.name/increase-php-...-limit-ini_set

בכל אופן - מה אתה עושה ולמה? זה נשמע קצת עקום.
אפשר להעביר את זה ל- cron job?
  Reply With Quote
ישן 04-04-14, 21:45   # 3
GNS
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Jun 2012
הודעות: 276

GNS לא מחובר  

cron jobs...
  Reply With Quote
ישן 04-04-14, 22:24   # 4
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

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

הסתדרתי תודה רבה בכל אופן!
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
ישן 05-04-14, 03:42   # 5
zoharesh
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 600

zoharesh לא מחובר  

בקשר לבעיה שלך, שים את הגדרת הפונקציה בתנאי
PHP קוד:
if(!function_exists(...)) 
במקום לעבוד עם sleep הייתי עובד עם מסד נתונים, כל טעינה של העמוד בודק אם מאז הפעם האחרונה שהפונקציה רצה עברו 5 דקות, ואם כן מריץ את הפוקציה ומעדכן את הזמן במסד.
__________________


HIGHDESIGN.co.il עיצוב ובניית אתרים.
  Reply With Quote
ישן 05-04-14, 04:03   # 6
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

מסד? למה?
אני צריך שאני אכנס לדף, הדף ישאר פתוח ויבצע פונקציה כלשהי כל 5 דקות במשך 15 דקות כלומר 3 פעמים.
אני אצטרך לשלוף את השדה של ה5 דקות בכל שנייה..
במה זה עדיף על sleep?

תודה.
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
ישן 05-04-14, 09:38   # 7
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

ממליץ להשתמש בCRON JOBS
או להשתמש בjquery בצורה הבאה:
קוד:
$(function() {
	$.get( "abc.php" ); // קובץ ראשון
	
	setTimeout(function() {
	
		$.get( "abc-2.php" ); // קובץ שני אחרי 5 דקות
		
		setTimeout(function() {
			$.get( "abc-2.php" ); // קובץ שלישי אחרי עשר דקות מהתחלה
		}, 300000);
		
	}, 300000);
});
לא בדקתי אבל זה אמור לעבוד לדעתי..
  Reply With Quote
ישן 05-04-14, 11:16   # 8
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

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

גם עכשיו, אמרת שפתרת את זה, לא אמרת איך - לעשות 3 includes זה גרוע, בדיוק בשביל זה קיימות לולאות.
  Reply With Quote
ישן 05-04-14, 11:47   # 9
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

בדיוק, עשיתי לולאה, אבל זה לא עובד משהו..
עכשיו הוספתי
PHP קוד:
 ini_set('max_execution_time'780); 
ואני בוחן איך זה עובד..
העניין הוא שכרגע אני מאוחסן בסתם שרת חינמי (שוב זה לכמה ימים בלבד)..אתם חושבים שתהיה להם בעיה עם הפקודה הזו? זה משהו שהם פחות אוהבים? זה יכול לגרום לבעיות?

תודה.

עריכה: גם עם max_execution_time זה לא עובד (הוספתי את זה ממש בפתיחת הדף, מתחת ל <?php).
כאילו 5 דקות זה יותר מדי זמן.
לא מבין מה קורה פה..זה אמור לעבוד.
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743

Last edited by dor77; 05-04-14 at 11:51..
  Reply With Quote
ישן 05-04-14, 12:27   # 10
Ori The Man
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: חיפה
גיל: 33
הודעות: 3,694
שלח הודעה באמצעות MSN אל Ori The Man Send a message via Skype™ to Ori The Man

Ori The Man לא מחובר  

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

אין לך ברירה של cron job ואם אין לך, תנסה למצוא מישהו שיש לו, שיעשה שכל 5 דקות זה יגש לקובץ בשרת שלך (אתה פשוט יכול להגדיר כתובת שהוא יגש אילו כל פעם ויריץ אותו)
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

כלים לאשכול
תצורת הצגה

חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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