PDA

View Full Version : نخ کش (multithread) در php



sara66
جمعه 28 تیر 1392, 19:15 عصر
سلام
من از طریق url در php اس ام اس ارسال می کنم اما باید به 300 نفر اس ام اس ارسال کنم و اگر بخوام با یک حلقه این کار را انجام بدم که ۲ روز طول می کشه !
امکانش هست هر فرآیند ارسال اس ام اس را توی یک thread جداگانه ارسال کنم ؟

Unique
شنبه 29 تیر 1392, 00:37 صبح
چرا باید دو روز طول بکشه ؟ اگه از پنل های آنلاین حالا چه third party و چه خود رهیاب و غیره استفاده کنید هر sms زورکی ۲ ثانیه و ۳۰۰ تا هم حدود ۱۰ یا ۱۵ دقیقه ! البته به مراتب از این بیشتر هم هست ! تازه توی خیلی از web service ها میشه کل شماره ها و یا مثلا ۲۰ یا ۳۰ تایی ارسال کرد و توی یکی دو دقیقه هزاران sms ارسال کرد !

sara66
شنبه 29 تیر 1392, 09:25 صبح
مرسی
اما من فقط میتونم از url استفاده کنم و به وب سرویس دسترسی ندارم .
همان 15 دقیقه هم زیاد هست ! میخوام بتونم چندتا را همزمان بفرستم ، همون نخ کشی

MMSHFE
شنبه 29 تیر 1392, 09:54 صبح
دوست عزیز، اولاً لطف کنید این اصطلاحات من درآوردی فرهنگستان رو وارد برنامه نویسی نکنید و بگذارین همون Multi-Thread باقی بمونه، ثانیاً شما با استفاده از روشهای مختلفی میتونید این هدف رو فراهم کنید. یک راه اینه که با کمک shell_exec چندبار مفسر PHP رو صدا بزنید تا فایل موردنظر شما رو اجرا کنه و اون فایل هم هربار 10 شماره رو (یا هر چندتا که میخواین) بگیره و یک Flag روی اونها بگذاره که داره میفرسته تا بقیه سراغشون نرن (و یک SMS دوبار برای یک نفر ارسال نشه) و شروع به ارسال کنه. با (0)set_time_limit هم تنظیم کنید که اسکریپت با Timeout error مواجه نشه. یک راه دیگه هم اینه که از کلاس PThreads (http://ir2.php.net/manual/en/book.pthreads.php) استفاده کنید.

sara66
شنبه 29 تیر 1392, 10:04 صبح
مرسی
خوب روش اول که فکر نکنم روی هاست معمولی قابل اجرا باشه !
روش دوم را هم مطالعه می کنم. یک multi processing هم توی php دیدم نمیدونم منظورش همین multi thread بود یا نه !

abolfazl-z
شنبه 29 تیر 1392, 11:39 صبح
با سلام


یک راه اینه که با کمک shell_exec چندبار مفسر PHP رو صدا بزنید تا فایل موردنظر شما رو اجرا کنه و اون فایل هم هربار 10 شماره رو (یا هر چندتا که میخواین) بگیره و یک Flag روی اونها بگذاره که داره میفرسته تا بقیه سراغشون نرن

میشه یکم بیشتر توضیح دهید ؟

با تشکر