PDA

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



naghmesra
May 28th, 2017, 12:59
سلام و درود

فرض کنید یه فایل php رو یک کرون جاب در سی پنل هر دقیقه اجرا میکنه.

من میخوام یه کاری کنم که اگر فایل در حال اجرا بود (یعنی توی یک دقیقه کارش تموم نشده بود) دیگه کرون جاب دوباره اجراش نکنه که توی کارش اختلال ایجاد شه.

راه حل این مشکل چیه؟

تشکر

omid1991
May 28th, 2017, 14:40
سلام و درود

فرض کنید یه فایل php رو یک کرون جاب در سی پنل هر دقیقه اجرا میکنه.

من میخوام یه کاری کنم که اگر فایل در حال اجرا بود (یعنی توی یک دقیقه کارش تموم نشده بود) دیگه کرون جاب دوباره اجراش نکنه که توی کارش اختلال ایجاد شه.

راه حل این مشکل چیه؟

تشکر

سلام وقت بخیر

بهترین کار اینکه بصورت دستی فایل رو اجرا کنید ببنید چقدر زمان میبره تا کامل کارشو انجام بده
زمان بدست اومده مثلا اگه تو 2 دقیقه شد زمان رو 3 دقیقه ست کنید.
به همین سادگی :53:

naghmesra
May 28th, 2017, 14:47
درود


سلام وقت بخیر

بهترین کار اینکه بصورت دستی فایل رو اجرا کنید ببنید چقدر زمان میبره تا کامل کارشو انجام بده
زمان بدست اومده مثلا اگه تو 2 دقیقه شد زمان رو 3 دقیقه ست کنید.
به همین سادگی :53:

بله خوب اینم راهی هست.

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

تشکر

lizard.tiny
May 28th, 2017, 18:12
سلام

راه های زیادی وجود داره

ساده ترین راه این هست که کرون جاب زمانی که اجرا میشه کنار خودش یک فایل ایجاد کنه ( مثلا run.txt ) و زمانی که کارش تموم شد فایل رو حذف کنه

حالا باید در فایل php کرون تعریف کنید در صورتی که فایل run.php وجود داشت دستوری اجرا نشه و پروسه اجرای کرون بسته بشه

مثال : http://pastecode.ir/?p=104435

در این کد تعریف شده اگه فایل run.txt وجود داشت کرون کار نکنه

اما اگه فایل run.txt وجود نداشت این فایل رو بسازه و بعد از ساخت اون دستورات PHP مربوط به کرون رو اجرا کنه و بعد از اینکه کارش تموم شد فایل run.txt رو حذف کنه تا در صورت اجرای مجدد کرون تشخیص بده که کرون دیگه ای در حال اجرا نیست

----

راه های زیادی هست, همینوی میشه به دیتابیس متصل کرد یا راه های دیگه که با کمی فکر و ابتکار عمل میشه اجرا و پیاده سازی کرد

naghmesra
May 28th, 2017, 23:57
درود



سلام

راه های زیادی وجود داره

ساده ترین راه این هست که کرون جاب زمانی که اجرا میشه کنار خودش یک فایل ایجاد کنه ( مثلا run.txt ) و زمانی که کارش تموم شد فایل رو حذف کنه

حالا باید در فایل php کرون تعریف کنید در صورتی که فایل run.php وجود داشت دستوری اجرا نشه و پروسه اجرای کرون بسته بشه

مثال : http://pastecode.ir/?p=104435

در این کد تعریف شده اگه فایل run.txt وجود داشت کرون کار نکنه

اما اگه فایل run.txt وجود نداشت این فایل رو بسازه و بعد از ساخت اون دستورات PHP مربوط به کرون رو اجرا کنه و بعد از اینکه کارش تموم شد فایل run.txt رو حذف کنه تا در صورت اجرای مجدد کرون تشخیص بده که کرون دیگه ای در حال اجرا نیست

----

راه های زیادی هست, همینوی میشه به دیتابیس متصل کرد یا راه های دیگه که با کمی فکر و ابتکار عمل میشه اجرا و پیاده سازی کرد

به مورد خوبی اشاره کردید.

فقط یه سوال توی else نوشتید return false نمیشه else رو خالی گذاشت؟

تشکر

lizard.tiny
May 29th, 2017, 09:41
درود



به مورد خوبی اشاره کردید.

فقط یه سوال توی else نوشتید return false نمیشه else رو خالی گذاشت؟

تشکر
درود

به این شکل استفاده کنید : http://pastecode.ir/?p=114078