Łukasz M
Łukasz M

Reputation: 43

jQuery POST multithreaded delays

I am playing with multithreaded POST requests in PHP code.

As these requests can take a long time, I decided to multithread these POST requests to do things faster by using multiple connections.

At this moment I wrote scheduler in javascript that executes POST requests (with jQuery post command) to request_helper.php, and watch if there are up to 4 pending requests at the time. In theory I can get data 4 times faster.

I started to play with request_helper.php with that content:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'on');
sleep(20);
exit (0);
?>

and run 4 POST requests at the same time. and after 20 seconds, I got 4 POST responses. Great!

However if I add start_session() - which I need for checking if the user has permissions:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 'on');
// always load or start session
session_start();
sleep(20);
exit (0);
?>

the response for first request takes 20 seconds, but for the second - 40 seconds, for the third 3 seconds - it looks like session_start could handle one request at the time. I actually lose multithreading.

Why this happens, how to do it better?

Upvotes: 3

Views: 63

Answers (1)

Edward
Edward

Reputation: 1883

You can use sessions in this way but you need to unlock the session before sending the next request.

session_write_close();

Should do it.

Upvotes: 1

Related Questions