راکت

Requestها در لاراول

9 پاسخ

سلام دوستان

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

سپاس

Iman
Iman
@iman.rjb
ثبت پرسش جدید

پاسخ‌ها

9
Reza Jashnsaz
Reza Jashnsaz
@rezajashnsaz0011

تخصص: مهندس نرم افزار

سلام
Queue و job

Iman
Iman
@iman.rjb

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

شاید پاسخ شما همین‌جا باشد

پارسا
پارسا
@parsavdst

تخصص: برنامه نویس PHP-Laravel، طراح UI/UX

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

Iman
Iman
@iman.rjb

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

سید حسین رضوی
سید حسین رضوی
@hossein.r.1442

تخصص: برنامه نویس وب و طراح رابط کاربری

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

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

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

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

ببینید

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

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

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

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

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

Iman
Iman
@iman.rjb

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

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@iman.rjb

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

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


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

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

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