PDA

View Full Version : سوال: نحوه پردازش همزمان اطلاعات



sardarn
سه شنبه 03 دی 1398, 22:59 عصر
سلام

من یک صفحه PHP دارم که درخواست هاوی که از سرور های دیگه براش میاد رو پردازش میکنه و و به دیتابیس وصل میشه و خروجی لازم رو میده. یه مشکلی که دارم یکی از این سرور هائی که درخواست برا من میده یک دفعه همزمان مثلا با ترد 20 تا درخواست برا من میفرسته ولی سررو من چون PHP هست همزمان جواب نمیده اونیکه اول اومده رو جواب میده تا برسه به آخر اینجوری اون 20 درخواست ممکنه که بعضی هاشون دچار تایم اوت بشن و عملیات لازم انجام نشه.

من باید چیکار کنم که بتونم همه درخوسات هارو درست جواب بدم؟ اگه بخام از ترد استفاده کنم اینکار به ازای هر درخواست میاد ترد اجرا میکنه نمیاد برای همه درخواست ها همزان ترد اجرا کنه و 20 درخواست همزمان پردازش کنه

ممنون

plague
چهارشنبه 04 دی 1398, 14:04 عصر
معمولا وبسرور چندین درخواست رو به صورت موازی پردازیش میکنه و اینجوری نیست یکی منتظر دیگری بمونه و برای هر درخواست ترد جدا ایجاد میکنه
این رو میتونی با یک کد ساده تست کنی



<?php
if(isset($_GET['wait']))
{
sleep(20);
}


echo "ok";
?>

شما میتونی 2 تا درخواست بفرستی به این آدرس

script.php?wait=1
script.php


که اولین درخواست 20 ثانیه طول میکشه تا اجرا بشه
ولی شما اگه تو این مدت درخواست دوم رو بفرستی میبینی که اجرا میشه و خروجی میده و منتظر پایان درخواست اول نمیمونه



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