У меня есть скрипт php, который захватывает контент с другого сайта. Я хочу, чтобы один и тот же скрипт выполнялся одновременно, поэтому параллельно (с разными входными параметрами).
Существует функция pcntl, которую можно использовать для многопоточных процессов в php, однако в руководстве говорится, что не рекомендуется использовать ее в среде веб-сервера. Поэтому я решил не делать этого, так как мой скрипт работает на сервере.
Я решил использовать многопоточность в perl для вызова функции php. Когда я вызываю два разных php-скрипта из Perl, они выполняются одновременно, но когда я использую один и тот же php-скрипт, первый скрипт должен завершиться, прежде чем второй скрипт сможет запуститься.
Также, кажется, не имеет значения, использую ли я поток в perl или нет, потому что при использовании того же скрипта первая сессия должна завершиться, прежде чем начнется следующая. Скрипты php также выполняются одновременно без использования потоков, см. Скрипт ниже.
Любая помощь будет очень приветствоваться!
Файл ---> test.pl
<code></p>
<p>#!C:/wamp/bin/perl/bin/perl.exe</p>
<p>print "Content-type: text/html\n\n";
print '' . "\n<p>";
print '' . "\n<p>";</p>
<p>use Config;
$Config{useithreads} or die('Recompile Perl with threads to run this program.');</p>
<p>use threads;
my $Param3 = 'foo';
my $thr1 = threads->create(\&sub1, 'Param 1', 'Param 2', $Param3);
my @ParamList = (42, 'Hello', 3.14);
my $thr2 = threads->create(\&sub1, @ParamList);
my $thr3 = threads->create(\&sub1, qw(Param1 Param2 Param3));
sub sub1 {
my @InboundParameters = @_;
print("In the thread\n");
print '<p>' .
print('Got parameters >', join('<>', @InboundParameters), "<\n");}
test1.php:
<?php echo "PHP generated this, this is script test1"; sleep(5); ?>
test2.php:
<code><?php echo "PHP generated this, this is script test2"; sleep(5);?>