سلام
خیلی مواقع نیاز میشه که یه task رو به یه صفحه php میدیم و ممکنه این task مثلا 20 دیقه ای زمان ببره. اگه این task مثلا وارد کردن تعداد زیادی رکورد به یه جدول باشه دم دستی ترین روش اینه که این کارو تو یه لوپ بندازیم تا مثلا 100000 تا رکورد رو وارد کنه. با استفاده از لوپ اگه time out سرور هم بالا باشه سرور به حالت هنگ درمیاد. راه حل هندل کردن این task ها تو php رو کسی میدونه؟ من یه سری برنامه های سروری ددیدم که بدون اینکه سرور هنگ کنه یه status bar میاد و مثلا 10 دقیقه اون کارو انجام میده بدون اینکه همه توان سرور بره رو اون task. تایم اوت هم به نظر نمیاد دستکاری شده باشه.
یکی از روش هایی که به نظرم رسید این بود که تو صفحه فقط یه رکورد insert کنم. بعد redirect کنم به خود صفحه و با یه query string به صفحه بگم رکورد اول وارد شد، حالا ایندفعه صفحه رکورد دوم رو insert میکنه و دوباره redirect میشه رو خودش و همینطور تا رکورد آخر. یعنی از loop استفاده نکردم. ولی اینکار هم مشکل رو برطرف نکرد.
کسی نظری داره؟
خیلی مواقع نیاز میشه که یه task رو به یه صفحه php میدیم و ممکنه این task مثلا 20 دیقه ای زمان ببره. اگه این task مثلا وارد کردن تعداد زیادی رکورد به یه جدول باشه دم دستی ترین روش اینه که این کارو تو یه لوپ بندازیم تا مثلا 100000 تا رکورد رو وارد کنه. با استفاده از لوپ اگه time out سرور هم بالا باشه سرور به حالت هنگ درمیاد. راه حل هندل کردن این task ها تو php رو کسی میدونه؟ من یه سری برنامه های سروری ددیدم که بدون اینکه سرور هنگ کنه یه status bar میاد و مثلا 10 دقیقه اون کارو انجام میده بدون اینکه همه توان سرور بره رو اون task. تایم اوت هم به نظر نمیاد دستکاری شده باشه.
یکی از روش هایی که به نظرم رسید این بود که تو صفحه فقط یه رکورد insert کنم. بعد redirect کنم به خود صفحه و با یه query string به صفحه بگم رکورد اول وارد شد، حالا ایندفعه صفحه رکورد دوم رو insert میکنه و دوباره redirect میشه رو خودش و همینطور تا رکورد آخر. یعنی از loop استفاده نکردم. ولی اینکار هم مشکل رو برطرف نکرد.
کسی نظری داره؟
آخرین ویرایش: