Iman
5 سال پیش توسط Iman مطرح شد
9 پاسخ

Requestها در لاراول

سلام دوستان

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

سپاس


ثبت پرسش جدید
Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 5 سال پیش مطرح شد
0

سلام
Queue و job


Iman
@iman.rjb 5 سال پیش مطرح شد
0

ممنون از پاسخت ولی من نمی خوام از Queue استفاده کنم چرا که می خوام کاربر پاسخ درخواستش رو همون لحظه دریافت کنه. با Queue این کار شدنیه؟


پارسا
تخصص : برنامه نویس PHP-Laravel، طراح...
@parsavdst 5 سال پیش مطرح شد
0

وقتی از صف استفاده میکنید، نمیتونید همون لحظه جواب رو به کاربر نشون بدین. چون اون task قرار هستش بعدا انجام بشه


Iman
@iman.rjb 5 سال پیش مطرح شد
0

بله من هم متوجه این موضوع هستم ولی چه راه حلی در لاراول وجود داره که بتونه به چند درخواست همزمان جواب بده؟؟؟
قطعا باید راه حلی موجود باشه


سید حسین رضوی
تخصص : برنامه نویس وب و طراح رابط کار...
@hossein.r.1442 5 سال پیش مطرح شد
0

با حقیقتا دقیق متوجه نمیشم منظورتون چیه چون میفرمایید با صف هم نمی خوای کار کنی
فک کنم اگه از pusher استفاده کنی مشکلت حل بشه


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
0

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

چطور؟! مثلا کسی که در سایت راکت (لاراول) باشه و درخواست ثبت نام یا درخواست ثبت تایپیک تویی انجمن بده سایت از دسترس خارج میشه تا Request برای کاربر برگردونه؟!! کی همچین حرفی زده؟!


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

ببینید

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

  • این درخواست در سمت سرور دریافت میشه
  • پاسخی براش تهیه میشه
  • نتیجه به شما بازگشت داده میشه

حالا اگر درخواست از نوع POST هم باشه، باز به همین ترتیب اتفاق میفته.

کلا پروتوکل HTTP یک پروتوکل Stateless هست و
وب سرور هم تنها محدود به یک درخواست نیست.

این به این معنیه که وقتی درخواستی به سرور میرسه، همون لحظه پردازش میشه و برگشت داده میشه و در آخر پروسس به کلی Terminate میشه.
پس پاسخگویی به درخواست ها بصورت پیش فرض به شکل همزمان اتفاق میفته.


Iman
@iman.rjb 5 سال پیش مطرح شد
0

دوستان ممنون از پاسختون

علی جان @ali.bayat
من بارها این موضوع رو امتحان کردم. به عنوان مثال من در حال ایمپورت یک فایل به داخل دیتابیس از طریق ارسال یک فرم در لاراول هستم که این کار مثلا یک دقیقه طول میکشه تا پردازش بشه، تا این پردازش کامل انجام نشه حتی درخواست های GET هم پاسخ داده نمیشه و در واقع مثلا باز کردن یک صفحه از سایت میره تو حالت لودینگ تا اون یک دقیقه انجام بشه


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@iman.rjb

این موضوع با پاسخ دادن به درخواست ها کمی تفاوت داره..
بعضی مواقع بار فشار محاسباتی که روی سرور بالا بره.. بله این اتفاق ممکنه بیفته.

به طور مثال اگر سعی کنید ۱ میلیون آیتم رو در یک حلقه while پردازش کنید.
خوب مشخصا تا این داده ها پردازش نشند، دیگه منابعی برای سرور باقی نمیمونه که پاسخگوی شما باشه.


یک راهی که میتونید امتحان کنید اینه که:
کارتون رو به تکه های کوچیک تر تبدیل کنید و اونهارو به صورت async اجرا کنید:
مقاله زیر رو بررسی کنید:
https://stitcher.io/blog/asynchronous-php


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

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