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

نام تاپیک: اجرا شدن دائم یک سری فایل

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    اجرا شدن دائم یک سری فایل

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

  2. #2

    نقل قول: اجرا شدن دائم یک سری فایل

    بهتره اول بگی چنین چیزی رو واسه چه کاری میخوای! شاید کسی ایدهء بهتری داشته باشه یا راه استانداردتری واسش باشه، یا اینکه اصلا نیاز به چنین چیزی نداشته باشی یا کاری که میخوای بکنی یجورایی اشتباه باشه.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    جزیره مارماری
    پست
    1,137

    نقل قول: اجرا شدن دائم یک سری فایل

    eshpilen راست میگه.ولی برای اون کار میتونی از کرون جابز استفاده کنید

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: اجرا شدن دائم یک سری فایل

    سلام
    برای یه بازی آنلاین باید یک سری کار همیشه در حال جریان باشه مثلا پروسه حمله به دهکده x رو کامل کنه و پردازش کنه.
    از cronjobs نمی خوام استفاده کنم. راهی رو دیدم که طرف کاری می کرد که اگر task manager رو باز کنی در اون قسمت در حال انجام بود.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    جزیره مارماری
    پست
    1,137

    نقل قول: اجرا شدن دائم یک سری فایل

    من چند ماه پیش درباره همین مشکل یه جستجوی 5 دقیقه ای کردم.فقط به cronj jobs رسیدم.شاید راه دیگه ای هم باشه

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: اجرا شدن دائم یک سری فایل

    هستن که هست.
    دیدم خودم.
    تو لینکی هم که اقای eshpilen تو یه تاپیک دادن و در پست اول هم یه سری چیزا ذکر کردم.

  7. #7
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: اجرا شدن دائم یک سری فایل

    دوست عزیز ! php برای این کار ها نیست. در واقع شما باید از php به صورت cli استفاده کنی و برای اینکه اگه به هر دلیلی برنامه متوقف شد دوباره ریست بشه بهترین راه daemon هست یعنی به صورت یک daemon توی لینوکس اجرا بشه که در صورت stop شدن یا reset شدن سیستم خودش دوباره به اجرا برگرده ! daemon ها مانند windows service ها هستند و البته بسیار بسیار قدرتمند تر ! ولی به قول یکی که میگفت PHP is meant to die باز هم میگم که php به درد این کار نمیخوره و مشکلاتش زیاده ! من برای چنین کاری فقط از python استفاده میکنم. java هم گزینه بدی نیست ام امن ازش خوشم نمیاد و اگه باهاش راحتی اون هم متداوله.

    مدتی پیش برای یک پروژه نیاز به این کار پیدا کردم و از روی این آموزش انجام دادم. امیدوارم موفق باشی.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: اجرا شدن دائم یک سری فایل

    سلام
    دقیقا همین رو می خواستم.
    خیلی خیلی ممنونم.
    می خوام بدونم می شه روی VPS اینکارو کرد؟
    سیستم مورد نیاز daemon چیه؟
    درمورد اینکه از اول شروع کنه متاسفانه همین خیلی مسئله بزرگیه.
    قصد دارم اینکارو بکنم چون روش الانم وقتی سرور خیلی سنگین می شه ممکنه وسطش قطع شه و دقیقا قصد تغییرش رو دارم چون ممکنه وسطش قطع شه.
    چکار می کشه کرد که اگر وسطش قطع شد به اولش برگرده؟ mysql همچین قابلیته داری؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: اجرا شدن دائم یک سری فایل

    up..........

  10. #10
    کاربر دائمی آواتار 2undercover
    تاریخ عضویت
    تیر 1391
    محل زندگی
    خراسان رضوی
    پست
    1,471

    نقل قول: اجرا شدن دائم یک سری فایل

    نقل قول نوشته شده توسط amin0256 مشاهده تاپیک
    سلام
    برای یه بازی آنلاین باید یک سری کار همیشه در حال جریان باشه مثلا پروسه حمله به دهکده x رو کامل کنه و پردازش کنه.
    از cronjobs نمی خوام استفاده کنم. راهی رو دیدم که طرف کاری می کرد که اگر task manager رو باز کنی در اون قسمت در حال انجام بود.
    راستش منم خیلی دنبال این قضیه بودم. حتی یک تاپیک توی همین فروم هم زدم.
    در نهایت همین چند روز پیش توی سایت های غیر فارسی هم دنبال این قضیه گشتم. بیشتر جاهایی که من دیدم گفته بودند که برای انجام این کار سه روش پیدا کردم:

    1. Cron Jobs که اطلاعات توی بازی هر چند وقت یکبار (مثلا هر 5 دقیقه یکبار) بروز بشه. که یعنی اتفاقات بازی لحظه به لحظه گزارش نمیشه.

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

    3. این راه توی یک اسکریپت Travian هم استفاده شده بود و به نظر من هم بهترین راه ممکن هست. که یک فایل به نام Automation.php در موتور بازی وجود داشت و هر کاربری که توی بازی فعالیت انجام می ده اون فایل اجرا میشه و تمامی پردازش های مربوط به خود اون کاربر و کاربر های دیگه هم انجام میشه. اینطوری خوب اگه هیچ کاربری توی بازی نباشه اتفاقات توی بازی هم پردازش نمی شوند، که معمولا نیازی هم نیست. چون وقتی کسی توی بازی نیست، نه نیازی به پردازش هست نه نیازی به رتبه بندی نه چیز دیگه ای.

  11. #11
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: اجرا شدن دائم یک سری فایل

    سلام
    بدی مشکل من با cron jobs اینه که ممکنه پردازش تموم نشده دوباره شروع شه و یا اینکه بینش فاصله بیوفته!

    اینم که خودتون گفتید.

    3- من دقیقا واسه همین می خوام! می خوام یک مشکل رو که داره حل کنم.

  12. #12
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: اجرا شدن دائم یک سری فایل

    می خوام بدونم می شه روی VPS اینکارو کرد؟
    فقط روی vps میشه این کار را کرد.

    سیستم مورد نیاز daemon چیه؟
    روی همه توزیع های لینوکسی میشه ولی من روی ubuntu انجام دادم.

    درمورد اینکه از اول شروع کنه متاسفانه همین خیلی مسئله بزرگیه.
    به شرطی ریست میشه که یا برنامه شما exception بخوره و terminate بشه یا کلا سیستم عامل ریست بشه ! برق بره و از این حرفا در غیر این صورت تا ابد به کارش ادامه.

    ببینید توی این حالا شما برنامتون اصلا کاری با web server نداره ! شما اسکریپت php را مینویسین و اجراش میکنین ، حالا تا زمانی که برنامه قطع نشه به کارش ادامه میده ! مثلا اینطوری اسکریپت php با process id معتبر اجرا میشه و تا زمانی که قطع نشه به کارش ادامه میده :

    nohup php script.php &


    برای نوشتن یک daemon هم اینطوری عمل کنین :

    یک فایل توی etc/init/ میسازی به نام phpdaemon.conf و توی مینویسی :

    description "My PHP Daemon"
    author "Unique"

    start on startup
    stop on shutdown

    respawn
    respawn limit 20 5

    script
    [ $(exec /usr/bin/php -f /path/to/your/script.php) = 'ERROR' ] && ( stop; exit 1; )
    end script


    حالا به راحتی میتونی روشن و خاموشش کنی :
    sudo service phpdaemon start
    sudo service phpdaemon stop


    یا حتی وضعیتشو ببینی :
    sudo service phpdaemon status


    ما باز هم میگم بی خیال php شو ! php برای این کار ها بهینه نیست و python و java و از همه بهتر node.js بهترین انتخاب هستند. همین کار را با اونها انجام بده. من به همین روش یک socket server نوشتم و توی پروژه ام استفاده کردم و به خوبی جواب میده.

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

    اصلش هم مال وبلاگ یک برنامه نویس node.js هست ، اینم لینکش.

تاپیک های مشابه

  1. اجرا شدن فایل نصب از طریق صفحه وب
    نوشته شده توسط once4ever در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: جمعه 30 شهریور 1386, 22:23 عصر
  2. ترکیب دو فایل اجرایی با هم و اجرا شدن هر دو
    نوشته شده توسط dadvand در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: شنبه 03 شهریور 1386, 05:53 صبح
  3. اجرا شدن برنامه بعد از باز کردن هر فایل EXE
    نوشته شده توسط M8SPY_OK در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: پنج شنبه 25 مرداد 1386, 15:26 عصر
  4. اجرا شدن یک فایل بدون باز کردن آن در سایت
    نوشته شده توسط Fa_rezaey در بخش PHP
    پاسخ: 3
    آخرین پست: چهارشنبه 01 آذر 1385, 09:58 صبح
  5. چگونه از اجرا شدن برنامه بوسیله فایل اجرایی آن جلو گیری کنیم ؟
    نوشته شده توسط dibaj_ir در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 4
    آخرین پست: دوشنبه 10 مهر 1385, 11:17 صبح

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

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