PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : در حال اجرا ماندن طولانی اسکریپت php



esi20
January 17th, 2018, 00:31
سلام خدمت دوستان و اساتید

بنده یه کد به شکل زیر دارم:




while(!file_exists(__DIR__ ."/file")) sleep(10);


خوب همون طور که میدونید حلقه while باید تا زمانی که فایل file وجود نداره هر 10 ثانیه 1 بار اجرا بشه ولی این اتفاق نمیوفته و انگار اجرا حلقه while پس از مدت کوتاهی به پایان میرسه.

علت چی میتونه باشه؟

سپاس

a1994n1373
January 17th, 2018, 00:42
تو فایل php.ini

timeout بیشتر کنید .

rezaonline.net
January 25th, 2018, 11:43
سلام خدمت دوستان و اساتید

بنده یه کد به شکل زیر دارم:




while(!file_exists(__DIR__ ."/file")) sleep(10);


خوب همون طور که میدونید حلقه while باید تا زمانی که فایل file وجود نداره هر 10 ثانیه 1 بار اجرا بشه ولی این اتفاق نمیوفته و انگار اجرا حلقه while پس از مدت کوتاهی به پایان میرسه.

علت چی میتونه باشه؟

سپاس

اینجا گفتید تا زمانیکه فایل موجودی نیست ده ثانیه منتظر بمون بعد مجدد چک کن !

کلیه این فرایند بعنوان یک پروسس در حال اجرا میماند تا فایل موجود بشود و دستورات پایینی اجرا شود.
حالا ممکنه این فایل بعد از چند دقیقه اجرا شود .

همونطور که دوستمون گفتن خود پروسس پی اچ پی هم یک تایم اوتی دارد ، معمولا بین 30 تا 60 ثانیه است !

تایم اوت رو زیاد کنید هر چند روش مناسبی نیست و فشار میاره به سرور .


خوب همون طور که میدونید حلقه while باید تا زمانی که فایل file وجود نداره هر 10 ثانیه 1 بار اجرا بشه
خیر اینطور نیست .
حلقه چک میکنه فایل موجود هست یا نه اگر نبود ده ثانیه تاخیر می اندازه در پروسس و باز چک میکنه و به همین روال ادامه میده تا یا کل پروسس تایم اوت بشه یا فایل موجود بشه .

hoka
January 25th, 2018, 11:48
سلام خدمت دوستان و اساتید

بنده یه کد به شکل زیر دارم:




while(!file_exists(__DIR__ ."/file")) sleep(10);


خوب همون طور که میدونید حلقه while باید تا زمانی که فایل file وجود نداره هر 10 ثانیه 1 بار اجرا بشه ولی این اتفاق نمیوفته و انگار اجرا حلقه while پس از مدت کوتاهی به پایان میرسه.

علت چی میتونه باشه؟

سپاس



این دستوری که زدید کار خاصی قرار هست انجام بده ؟ چون این خطی که نوشتید حلقه در همین خط فقط مدام اسلیپ میکنه و کل اسکریپت در لوپ نمیره . ( عملا هیچ کاری نمیکنه اسکریپت در زمان اجرا )

مشکل اصلی رو هم که دوستان گفتن از چی هست

esi20
January 29th, 2018, 12:09
با تشکر از دوستان که پاسخ دادند.

چون روش فوق همون طور که خودتون هم اشاره کردید زیاد مناسب نیست.

بنده اومدم به جای اینکه اسکرپیت رو زنده نگه دارم تا ساخته شدن فایل اومدم از اسکریپت خارج شدم و به محض ساخته شدن فایل مجدد اسکریپت رو با اطلاعات قبل از خروج از سر گرفتم.