PDA

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



naghmesra
May 19th, 2017, 13:53
سلام و درود

دوستان فرض کنید یه foreach داریم که توی هر باری که اجرا میشه باید بره یه متنی رو با curl بگیره و بریزه توی یه آرایه ای حالا فرض کنید توی بار 99 ام سروری که قراره ازش اون متن رو بگیره داون میشه و مثلا 1 ساعت داون میمونه.

حالا سوال اینه من میخوام این بار 99 ام تا زمانی که داون رفع بشه تکرار شه و فایل php در حال اجرا بمونه و تا سرور مورد نظر آپ شد 99 رو بگیره و بره سراغ 100 امین بار اجرا foreach یعنی اون 98 تای قبلی هم که گرفته یادش نره.

چطور باید همچین کدی نوشت؟

تشکر

sajjad.ibm
May 19th, 2017, 14:34
طراحی کد می تونه اینقدر بهینه بشه که نیازی به همچین کاری نداشته باشید. اگر سایت مقصد قراره 1 ساعت آفلاین بشه، شما نباید اسکریپت خودتونو یک ساعت معطل نگه دارین.

شما می تونین اون آرایه رو تا هرچقدر که جمع شده، داخل یه فایل ذخیره کنید. (با تابع var_export)
بعد اگه curl نتونست بگیره، اسکریت هم توقف می خوره.
بار بعدی که اسکریپتو اجرا می کنید، اول اون فایل دخیره رو لود می کنه و می بینه که در آرایه چند تا متغیر داره و می فهمه که لوپ در کدام شماره متوقف شده و از همون شماره ادامه میده.

اگه نمونه کد دارین بذارین، همونو می تونیم بهینه کنیم.

rayanagostar
May 19th, 2017, 22:04
سلام و درود

دوستان فرض کنید یه foreach داریم که توی هر باری که اجرا میشه باید بره یه متنی رو با curl بگیره و بریزه توی یه آرایه ای حالا فرض کنید توی بار 99 ام سروری که قراره ازش اون متن رو بگیره داون میشه و مثلا 1 ساعت داون میمونه.

حالا سوال اینه من میخوام این بار 99 ام تا زمانی که داون رفع بشه تکرار شه و فایل php در حال اجرا بمونه و تا سرور مورد نظر آپ شد 99 رو بگیره و بره سراغ 100 امین بار اجرا foreach یعنی اون 98 تای قبلی هم که گرفته یادش نره.

چطور باید همچین کدی نوشت؟

تشکر
هر مقداری که گرفته رو میتونید تو دتیابیس ذخیره کنید و بعد از اجرای ادامه تا انتها در ادامه دیتابیس ذخیره بشه . در نهایت همه داده ها رو دارید

arash_fa
May 21st, 2017, 18:47
سلام طبق فرموده اساتید به هیچ وجه معطل نشید تا پاسخ بگیرید . از هز زوش ذخیره و بازیابی میتونید استفاده کنید

کش
سریالیز در فایل
سریالیز در دیتابیس
جسون در فایل و ..........

بعد ادامه رو بررسی کنید و اپند کنید