نمایش نتایج 1 تا 13 از 13

نام تاپیک: مشکل اجرای برنامه های طولانی مدت در php

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کلن
    پست
    121

    مشکل اجرای برنامه های طولانی مدت در php

    من یک اسکریپت PHP دارم که اجرای اون در cronjob نیاز به 7.5 ساعت زمان داره. با اینکه از دو خط زیر استفاده کردم، اجرای اسکریپت فقط تا 5 دقیقه ادامه پیدا میکنه و بعد دانلود اسکریپت پرسیده میشه!!! چرا دانلود؟؟؟ بعد از دانلود هم فقط یه صفحه سفید دیده میشه.

    ini_set('max_execution_time', 0); o

    set_time_limit(0); o

    هرچقدر هم جستجو میکنم فقط به دو دستور بالا میرسم.

  2. #2

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    چه جالب همين الان که من امدم اينجا اين سؤال رو بپرسم يکی ديگه پرسيده
    آقا اگه کسی ميتونه کمک کنه يه برنامه دارم ميخوام يه شب تا صبح کار کنه
    چی کار کنم؟ ميدونم با تغيير max execution time to php.ini ميشه ولی تغيير ميدم هيچ اتفاقی نمی افته

  3. #3

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    این 7 ساعت و نیم صرف چه کاری میشه؟

  4. #4

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    هر دو دستور بالا در هاست های مشترک به دلایل امنیتی غیر قابل استفاده هستند

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کلن
    پست
    121

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    یه وب سرویس هست که اطلاعات دارویی میده. یکی از دستوراش کد تمام دارو ها رو ارائه میده و دستور دوم با دادن یک کد، مشخصات دارو رو میده. من میخوام اطلاعات دازویی رو توی DB خودم بریزم تا سایت من برای این اطلاعات محتاج وب سرویس نباشه و سرعتش بالاتر بره. این وب سرویس 125822 دارو داره ولی بعد از 5 دقیقه و دریافت حدود 1400 دارو کار متوقف میشه. حتی برای امتحان من دستور Insert رو برداشتم و خواستم ببینم اسکریپت کارشو تموم میکنه و پیغام OK رو به Browser میفرسته که دیدم نه!

    ضمناً من هاست ندارم بلکه از یک Managed Server استفاده میکنم.

  6. #6

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    خوب شما توی یک تیبل جدا یک فیلد بزار به اسم start که مقدر پیش فرضش هم 0 باشه
    بعد با کرون فایل اصلیت رو هر 5 دقیقه یک بار اجرا کن منتها فقط 1000 تا 1000 تا رکورد بزن
    بعد آخر برنامت هم این شماره رکورد آخرین رکورد رو با مقدار start جم کن و ذخیره کن و برنامه متوقف میشه
    دوباره که با کرون اجرا میشه از start شروع رکورد رو بخون و 1000 تا رکرورد بعدی رو بخون و ...

  7. #7

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    آقا اگه تو لوکال هاست باشيم چی؟
    با اون 2 دستور جواب نگيريم چی کار کنيم؟

  8. #8

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    اگه مستقیم به فایا php.ini دسترسی داری او اونجا تنظیم کن

    ولی چه اصراری هست که همه‌ی proccess رو یکجا انجام بدی؟ می‌تونی تقسیم کنی و هر 5 دقیقه یک قسمت رو بریزی تو database

    فکر می‌کنم که با background proccessing هم بشه ولی شاید اونهم با مشکل مشابهی روبرو بشه

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کلن
    پست
    121

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

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

  10. #10

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    فکر نکنم راهی باشه آخه تمام فضای رم و cpu اینجوری صرف کار شما اشغال میشه

  11. #11
    کاربر دائمی آواتار xoogle.ir
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    <?مشهد=?>
    پست
    503

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

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

    پس بهتره عملیاتتون رو تکه تکه کنید و کم کم اجراش کنید.

  12. #12
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کلن
    پست
    121

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    من با وبسرویس تماس گرفتم و اونها راه دیگه ای رو پیشنهاد کردن که همه چیز رو تغییر داد.
    اونها دستوری رو ارائه دادند که باهاش میشه تمام داروهایی رو که مثلاً با A شروع میشه بصورت یکجا در یک متغیر XML ذخیره کرد. به اینشکل:

    $XmlVar=simplexml_load_file(rawurlencode("http://webservices. ... /GetMedicinesByName?user=...&pass=...&search=a


    و یک XML خیلی بزرگ با حدود 27000 دارو در متغیر XmlVar$ ذخیره میشه و اینکار حدود 27 ثانیه زمان میبره. خوب این کار رو خیلی راحت کرد چون من میتونم این دستور رو برای 26 حرف الفبای لاتین و اعداد 0 تا 9 انجام بدم و با 36 بار اجرای دستور، همه داروها رو بگیرم که اینکار قاعدتاً برای 400000 دارو، حدود 400 ثانیه زمان میخواد. خوب میشه بخاطر محدودیت 5 دقیقه ای، در دو مرحله اجراش کرد.

    مشکل جدید اینه که من چطور میتونم در سریعترین زمان ممکن این متغیر رو در MySQL Table بنویسم. تمام دستوراتی که جستجو کردم، درج یک XML File در Table بود نه XML Var در Table و من نمیخوام یه بار این متغیر بزرگ رو توی سرور توی یه فایل بنویسم (که مسلماً بسیار زمانبر هست) بعد ببرمش توی MySQL و در آخر هم پاکش کنم. فکر میکنم دستوری باشه که بشه توی یک خط، همه XmlVar$ رو یکجا Insert کرد.

  13. #13
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کلن
    پست
    121

    نقل قول: مشکل اجرای برنامه های طولانی مدت در php

    درود به همگی،

    من جواب سوالمو پیداکردم :)

    از همتون بخاطر همفکری صمیمانه متشکرم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •