PDA

View Full Version : حرفه ای: پیامک انبوه از وب سایت



beh3000
چهارشنبه 28 آبان 1393, 14:58 عصر
سلام

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

فرض کنید 50000 کاربر وجود داره و هر کس با تعداد متفاوتی سفارش ثبت شده براشون و باید 50000 تا پیامک ارسال بشه . مثلا یک پیامک با این متن : شما 3 سفارش در سایت دارید پیامک بعدی با این متن شما 7 سفارش در سایت دارید

میخوام بگم که پیامک ها متفاوته و باید از بانک تعداد سفارش رو درآورد.

حالا این رو چجوری از سایت ارسال کنم که بهینه باشه و برای همه هم ارسال بشه . 50000 تا باید تقریبا در طول 1 ساعت ارسال بشه

توجه داشته باشید که ارسال یک اس ام اس از سایت رو مشکل ندارم ها !!!! تو این مسئله باید چی کار کنم ؟؟؟ یک حلقه for با 50000 بار چرخش که هر بار یک اس ام اس میفرسته ؟؟؟؟!!!!!!

vahid78
چهارشنبه 28 آبان 1393, 16:34 عصر
من برای ارسال های انبوهم یک جدول صف ارسال sms درست کردم و به صورت cron ارسال sms دارم

بسته به نوع وب سرویس تون که چقدر محدودیت ارسال در هر اتصال وجود داره رکوردها را fetch میکنید و ارسال را انجام میدین

برای مثال برای من در هر اتصال 80 پیامک میتونم بفرستم/ هر دفعه 80 پیامک رو fetch میکنم و در آرایه قرار میدم و میفرستم

beh3000
چهارشنبه 28 آبان 1393, 17:29 عصر
اینکه میگین در هر اتصال 80 پیامک رو میفرستین رو میشه توضیح بدین روی کد های من

این کدی هست که من یک پیامک رو میتونم ارسال کنم


$client = new SoapClient("http://www.domainname.ir/post/send.asmx?wsdl");
$parameters['username'] = "username"; //user
$parameters['password'] = "password"; //pass
$parameters['from'] = "50001123456789"; //
$parameters['to'] = array($number);
$parameters['text'] =$msg;
$parameters['isflash'] = false;
$parameters['udh'] = "";
$parameters['recId'] = array(0);
$parameters['status'] = 0x0;
echo $client->GetCredit(array("username"=>$parameters['username'],"password"=>$parameters['password']))->GetCreditResult;
echo $client->SendSms($parameters)->SendSmsResult;




اون قسمت to رو باید تغییر بدم ؟ چجوری ؟

beh3000
چهارشنبه 28 آبان 1393, 17:57 عصر
پرسیدم مال منم 80 پیامکه

beh3000
چهارشنبه 05 آذر 1393, 09:37 صبح
هر کاری میکنم 80 پیامک همزمان ارسال نمیشه !!! دوستان کمک کنید لطفا

arta.nasiri
چهارشنبه 05 آذر 1393, 11:27 صبح
اینکه میگین در هر اتصال 80 پیامک رو میفرستین رو میشه توضیح بدین روی کد های من

این کدی هست که من یک پیامک رو میتونم ارسال کنم


$client = new SoapClient("http://www.domainname.ir/post/send.asmx?wsdl");
$parameters['username'] = "username"; //user
$parameters['password'] = "password"; //pass
$parameters['from'] = "50001123456789"; //
$parameters['to'] = array($number);
$parameters['text'] =$msg;
$parameters['isflash'] = false;
$parameters['udh'] = "";
$parameters['recId'] = array(0);
$parameters['status'] = 0x0;
echo $client->GetCredit(array("username"=>$parameters['username'],"password"=>$parameters['password']))->GetCreditResult;
echo $client->SendSms($parameters)->SendSmsResult;




اون قسمت to رو باید تغییر بدم ؟ چجوری ؟

سلام

محتوای هر پیامک متفاوته و نمیدونم سرویس دهنده پیامک شما امکان ارسال محتوا به صورت آرایه میده یا نه!! اگه این امکان رو داشته باشن کافیه اندیس text رو به صورت آرایه ارسال کنید، همچنین اندیس to رو. در ضمن توجه داشته باشید متد ارسال تکی با متد ارسال گروهی متفاوت هست.

راه دیگه ای که دارید هر بار ۸۰ تا رکورد بخونید و با یک حلقه ارسال کنید. اینکار رو با cron job انجام بدید. منابع زیادی هم از سرور اشغال نمیکنه.