الیاس سخاوتی نیا
5 سال پیش توسط الیاس سخاوتی نیا مطرح شد
4 پاسخ

حل مشکل زمان بر بودن اجرای تابع

سلام
وقت بخیر
عیدتون مبارک 🌺🌺

ببخشید من همچین کدی دارم

if (true) {
    $txt = 'سفارش شماره ' . $crt_id . ' تایید شد';
    send_notif('سفارش تایید شد', $txt, $sys);
    header("location:index.php");
}

کد اوکیه و کار میکنه اما یه مشکلی دارم اینه که اون تابع send_notif مثلا 10 ثانیه طول میکشه تا اجرا بشه و پوش فرستاده بشه و بعد دستور header اجرا میشه.
من میخوام اون تابع رو اجرا کنه و سریع بره خط بعدی و header رو اجرا کنه
(اون تابع send_notif یه درخواست به سرور پوشه میفرسته)
ممنون میشم راهنمایی کنین.
تشکر


ثبت پرسش جدید
AriaieBOY
تخصص : TALL Stack Lover
@ariaieboy 5 سال پیش مطرح شد
2

خوب اینجا هست که بحث صف پیش میاد
توی لاراول این مورد خیلی عالی پیاده سازی شده. شما کار های زمانبری که دارید را میفرستید داخل صف و اون کار ها به ترتیب هرموقع سرور سرش خلوت شد ارسال میشه.
کلا کار هایی که زمانبر هست مثل همین ارسال نوتفیکشن یا ارسال ایمیل و یا پردازش فایل و... اینا میره داخل صف و به موقع انجام میشه.
شما میتونید خودتون یک صف ایجاد کنید تمام این نوتفیکشن هاتون بفرستید داخل صف بعد یک کدم بنویسید که بیاد صف هی چک کنه هرموقع موردی بود سریع نوتفیکشن مربوطه را ارسال کنه.
اینجوری توی رسپانسی که به کاربر میخواهید بدید تاخیر ایجاد نمیشه. و سرور کار ارسال نوتفیکشن در پشت **** انجام میده


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 5 سال پیش مطرح شد
0

@ariaieboy
خیلی ممنون
متاسفانه با لاراول نیس
چطوری میتونم چیزی که گفتین رو خودم پیاده سازی کنم؟
(یعنی ریسپانس رو به کاربر بدم و بعد تابع رو فراخوانی کنم)
کلا همین 3-4 خط کده چیز دیگه ای نیس.


AriaieBOY
تخصص : TALL Stack Lover
@ariaieboy 5 سال پیش مطرح شد
2

@elyasbeshkani
نگاه کنید میتونید جست و جو کنید برای لایبراری هایی که هست و از یکی از اونها استفاده کنید.
یا هم خودتون میتونید یک صف خیلی ساده به این شکلی که میگم ایجاد کنید.
یک جدول داخل دیتابیستون درست میکنید. و اطلاعات نوتفیکشن را میذارید داخل اون
بعد از اون یک فایل درست میکنید که میاد از دیتابیس و جدول مربوطه اولین رکورد را برمیداره و نوتفیکشنش ارسال میکنه اگر موفقیت آمیز بود رکورد حذف میکنه وگرنه که هیچی
بعدش یک کران جاب روی اون فایل میزنید که مثلا هر دقیقه اجرا بشه.

البته میتونید تغییراتی هم بدید مثلا توی فایل بجای اینکه فقط یکدونه نوتفیکشن ارسال کنید بیایید همه نوتفیکشن ها را بگیرید ارسال کنید یا مثلا یک تعداد خاصی را بگیرید یا مثلا کران جاب تایمش تغییر بدید دیگه اونها دست خودتون هست.


اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 4 سال پیش مطرح شد
0

میتونید از سوکت استفاده کنید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام