PDA

View Full Version : socket bind شدن بعد از چند روز



n34000
چهارشنبه 19 خرداد 1395, 20:41 عصر
سلام
کد php نوشتم که مولتی کلاینت هست و با کرون جاب کد رو انلاین نگه میدارم
مشکلی که دارم اینه که بعد از چند روز که سوکت استفاده میکنم socket bind میشه
پورت باز هست اما اسکریپ جواب گوی کلاینت ها نیست
از cpanel استفاده میکنم،چه راهکاری بنظرتون میرسه
تشکر

Unique
پنج شنبه 20 خرداد 1395, 00:34 صبح
دوست عزیز اگه سرویس اشتراکی دارین کلا این مبحث cron job و این روش پیاده سازی خیلی مزخرفه !!! اگه سرویس اختصاصی دارین میتونین اسکریپت را به صورت یک daemon اجرا کنین و جواب نسبی بگیرین. اما کلا php برای این کار ها نیست. به نظرم برای چنین خدماتی برین سراغ node.js.

n34000
پنج شنبه 20 خرداد 1395, 14:10 عصر
هاست اشتراکی دارم
ترجیجا نیاز دارم برروی منابع ارزان قیمت کار کنم
دلیل منطقی برای از کار افتادن php به نظرتون نمیرسه؟

مهرداد سیف زاده
پنج شنبه 20 خرداد 1395, 15:26 عصر
php یه زبان اسکریپتی هست و برای کارهای که قراره بصورت wrapper یا daemon باشه مناسب نیست. چون اصولا بر این مبنا ساخته شده که بصورت لحظه ای یه درخواستی بیاد و مفسر اسکریپت رو بخونه و دستورات رو در همون لحظه اجرا کنه. هر چند میشه باهاش daemon هم انجام داد ولی قابل مقایسه با زبانهایی که عموما برای این کار استفاده میشن مثل c ، اصلا کارایی نداره
مخصوصا که شما داری با کرون اون رو روی هاست اشتراکی نگه میداری. که این اصلا مناسب نیست. مثلا برنامه شما بالا میاد و چند دقیقه ران میمونه و بعد کع خارج میشه، دوباره کرون میاد و اون رو ران میکنه.
برای socket programming همیشه سرور باید یک بار سوکت رو باز کنه و روی پورت خاصی listen کنه تا پکت بیاد، نه این که هر بار خارج بشه و بعد دوباره بیاد و listen کنه
برای همین شاید محدودیت هاست شما هم باشه، یا شاید iptable یا selinux داره جلوش رو میگه که برای چند باره اجرا نشه.

Unique
جمعه 21 خرداد 1395, 00:08 صبح
دلیل منطقی برای از کار افتادن php به نظرتون نمیرسه؟
اینو که جناب سیف زاده توضیح دادند.


ترجیجا نیاز دارم برروی منابع ارزان قیمت کار کنم
نیاز نیست هاست اختصاصی چند میلیونی بگیری ! با ماهی ۷ یا ۸ دلار میشه یک سرویس نسبتا خوب توی اروپا به صورت Virtual خرید.