unk2k
Новичок
PHP в несколько потоков обработки
Здравствуйте.
Дано:
Freebsd 5.3
PHP 4.1.3
PHP Скрипт - назовем ALFA1
PHP Скрипт - назовем ALFA2
ALFA1 мы запускаем так
%nohup php server.php &
все, далее мы вешаем в крон ALFA2 по моей надобности его нужно запускать еже 5ти минутно.
Все работает великолепно, прям как мне надо, НО.
Мне нужно что бы если я давал 10 000 запросов то они обрабатывались не в последовательности, а сразу. Вопрос как это реализовать и в чем тут проблема ?
Здравствуйте.
Дано:
Freebsd 5.3
PHP 4.1.3
PHP Скрипт - назовем ALFA1
PHP:
<?
ini_set('memory_limit', '128M');
error_reporting(0);
set_time_limit(0);
ob_implicit_flush();
include('modul.php');
$address = '127.0.0.1';
$port = 10000;
$sock = socket_create (AF_INET, SOCK_STREAM, 0);
$ret = socket_bind ($sock, $address, $port);
$ret = socket_listen ($sock, 24000);
do {
$msgsock = socket_accept($sock);
do {
if (FALSE === ($buf = socket_read ($msgsock, 2048))) {
echo "socket_read() failed: reason: " . socket_strerror ($ret) . "\n";
break 2;
}
if (!$buf = trim ($buf)) {
continue;
}
if (substr($buf, 0, 2)=='F1') {
....any big code.....
break;
}
if (substr($buf, 0, 2)=='F2') {
....any big code.....
break;
}
} while (true);
socket_close ($msgsock);
} while (true);
socket_close ($sock);
?>
PHP:
<?
ini_set('memory_limit', '128M');
ini_set('max_execution_time', '0');
ini_set('max_input_time', '0');
$link=mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx", $link);
function send($msg) {
$f=@fsockopen('127.0.0.1', 10000, $errno, $errstr, 3);
if (!$f) {
sleep(1);
send($msg);
}
@fputs($f, $msg);
@fclose($f);
}
send('F1');
for($i=0;$i<=10000;$i++) {
send('F2'.$i);
}
exit();
?>
%nohup php server.php &
все, далее мы вешаем в крон ALFA2 по моей надобности его нужно запускать еже 5ти минутно.
Все работает великолепно, прям как мне надо, НО.
Мне нужно что бы если я давал 10 000 запросов то они обрабатывались не в последовательности, а сразу. Вопрос как это реализовать и в чем тут проблема ?