@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
حتما از event/listener استفاده کنید و اون listener رو هم در queue اجرا کنید.
اینطوری اگر قرار باشه چند هزار پیامک هم ارسال بشه این متد بیشتر از چند ثانیه طول نمیکشه، و پیامک ها هم در سریعترین زمان ممکن ارسال میشن.
این متد اگر همینطوری بخواد اجرا بشه اگر تعداد پیامک ها خیلی زیاد باشه و یا سرویس ارسال پیامک قطع شده باشه قطعا time exception بر میگردونه
سلام
به جز موردی که جناب مهران مرندی فرمودند من چیز خاصی به چشمم نخورد که بتونید کدتون رو کمتر و بهینه تر کنید . به جز اینکه از Eloquent استفاده کنید تا لازم نشه مقادیر created_at و updated_at رو مقداری بدید .
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟