asmanmmsj
پنج شنبه 19 اسفند 1389, 22:41 عصر
سلام
من یه برنامه ای رو به زبان php نوشتم و کارش پردازش و محاسبه داده ها و ارسال در زمانهای تعیین شده به کاربران هست تقریبا نیاز دارم به حالتی که برنامه 24 ساعته رو سرور اجرا باشه تا سر ساعتهای تعیین شده کار ارسالو انجام بده
راهی که به نظر رسید و اجرا کردم این بود که بعد از اجرای صفحه وب با کد زیر کانکشن را میبستم و پشت صحنه کار را شورع به انجام میدادم ولی یه مشکل هست که رو سرور ها زمان اجرا بالاخره متوقف میشه و نمیزاره پروسه ادامه داشته باشه
کد بستن کانکشن از طرف کلاینت و اجرا ادامه برنامه در پشت صحنه
ob_end_clean();
header("Connection: close\r\n");
header("Content-Encoding: none\r\n");
ignore_user_abort(true); //optional
ob_start();
echo start;
header("Content-Length: " . ob_get_length());
ob_end_flush(); //Strange behaviour, will not work
flush(); //Unless both are called !
ob_end_clean();
برای رفع این مشکل من یه تیکه کد دیگه گذاشتم که هر از 5 دقیقه پروسه خود را فراخوانی میکنه با پارامتر و خودش خارج میشه
ولی نمیدونم از لحاظ فنی چه قضیه ای پشتش هست که بعد از چند ساعت یا کمتر کار کردن کل آپاچی از کار میفته و میشه گفت سرور از کار میوفته لازم به ذکر هست که من کار زیادی در این مدت نمیخوام انجام بده فقط یه حلقه هست که داخلش 1 دقیقه sleep و بعد چک کردن زمان برای اجرای کد خاص و دوباره sleep
ولی این کار که فکر نکنم روی cpu هم فشاری داشته باشه باعث میشه سرور کلا از دسترس خارج میشه
حالا بعد این همه که سرتونو دردآوردم میخواستم بدونم راه حلی وجود داره برای اجرای برنامه در چنین حالتی؟
مثلا این بازی های انلاین چطور کدشون همیشه روی سرورها در حال اجرا و پردازش هست؟
من یه برنامه ای رو به زبان php نوشتم و کارش پردازش و محاسبه داده ها و ارسال در زمانهای تعیین شده به کاربران هست تقریبا نیاز دارم به حالتی که برنامه 24 ساعته رو سرور اجرا باشه تا سر ساعتهای تعیین شده کار ارسالو انجام بده
راهی که به نظر رسید و اجرا کردم این بود که بعد از اجرای صفحه وب با کد زیر کانکشن را میبستم و پشت صحنه کار را شورع به انجام میدادم ولی یه مشکل هست که رو سرور ها زمان اجرا بالاخره متوقف میشه و نمیزاره پروسه ادامه داشته باشه
کد بستن کانکشن از طرف کلاینت و اجرا ادامه برنامه در پشت صحنه
ob_end_clean();
header("Connection: close\r\n");
header("Content-Encoding: none\r\n");
ignore_user_abort(true); //optional
ob_start();
echo start;
header("Content-Length: " . ob_get_length());
ob_end_flush(); //Strange behaviour, will not work
flush(); //Unless both are called !
ob_end_clean();
برای رفع این مشکل من یه تیکه کد دیگه گذاشتم که هر از 5 دقیقه پروسه خود را فراخوانی میکنه با پارامتر و خودش خارج میشه
ولی نمیدونم از لحاظ فنی چه قضیه ای پشتش هست که بعد از چند ساعت یا کمتر کار کردن کل آپاچی از کار میفته و میشه گفت سرور از کار میوفته لازم به ذکر هست که من کار زیادی در این مدت نمیخوام انجام بده فقط یه حلقه هست که داخلش 1 دقیقه sleep و بعد چک کردن زمان برای اجرای کد خاص و دوباره sleep
ولی این کار که فکر نکنم روی cpu هم فشاری داشته باشه باعث میشه سرور کلا از دسترس خارج میشه
حالا بعد این همه که سرتونو دردآوردم میخواستم بدونم راه حلی وجود داره برای اجرای برنامه در چنین حالتی؟
مثلا این بازی های انلاین چطور کدشون همیشه روی سرورها در حال اجرا و پردازش هست؟