@mhyeganeh
@mobinasattari7
@hesammousavi
سلام دوستان
کد زیر را نوشتم که اطلاعات تعداد زیاد را هم توی دیتابیس بریزه و هم همون لحظه اونا را از طریق api به یک سایت دیگه بفرسته
آیا راه بهتری برای سریعتر و بهینه تر کردن کد زیر دارید ؟
سپاس
public function store(Request $request)
{
$api = api::where('id', '=', $request->from)->firstOrFail();
$numbers = explode("\r\n", $request->numbers);
$insert_data = collect();
foreach ($numbers as $value) {
$insert_data->push([
'number' => $value,
'user_id' => auth()->user()->id,
'status' => 'send',
'text' => $request->message,
'from' => $api->api_number,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
foreach ($insert_data->chunk(500) as $chunk) {
Api_SMS($api->api_number, $request->message, $numbers);
DB::table('sms')->insert($chunk->toArray());
}
return redirect()->back()->with('success','ارسال انجام شد');
}درود بر شما.
من php ام خوب نیست اما بقیه دوستان فک کنم بتونن کمک کنن.
مثلا فک کنم جناب گمنام بتونن @gomnam
تخصص: برنامهنویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
سلام بنظرم می تونید for اول و دوم رو یکی کنید
شاید پاسخ شما همینجا باشد
حتما از event/listener استفاده کنید و اون listener رو هم در queue اجرا کنید.
اینطوری اگر قرار باشه چند هزار پیامک هم ارسال بشه این متد بیشتر از چند ثانیه طول نمیکشه، و پیامک ها هم در سریعترین زمان ممکن ارسال میشن.
این متد اگر همینطوری بخواد اجرا بشه اگر تعداد پیامک ها خیلی زیاد باشه و یا سرویس ارسال پیامک قطع شده باشه قطعا time exception بر میگردونه