Клубничный лимит памяти Perl? - PullRequest
0 голосов
/ 09 декабря 2011

Я запускаю Perl-скрипт, чтобы вытащить список из примерно 20 текстовых файлов и проанализировать их.По какой-то причине мой процесс частично выполняет бомбардировку списка, и у меня возникают проблемы с его отладкой.

Кто-нибудь знает, где находится файл журнала Strawberry Perl и есть ли встроенное максимальное время выполнения или переменная ограничения памяти, напримерв PHP?

Есть три файла: 1. cron.php 2. nightly_script.php 3. myscript.pl

Он успешно выполняет первый оператор вставки в цикле while, но больше не выполняетпосле этого.Так как это работает как работа cron, у меня нет выходного окна для просмотра.Вот почему я надеялся, что где-нибудь есть журнал, поэтому, если есть синтаксическая ошибка или ошибка mysql, я могу где-то ее увидеть.Кроме того, если я просто запускаю myscript.pl для данного файла напрямую, это не проблема.

cron.php

date_default_timezone_set('America/New_York');

/*

min hr dom month dow cmd

hour in 24 hour format, no leading zeros


*/

$jobsQueue = Array();

$jobsQueue[] = Array('10', '0', '*', '*', '*', 'php c:\nightly_script.php');    // These items are order dependent, so run as one script that synchronously executes each command

while(1) {

    $now = time();
    $min = date('i',$now);
    $hr = date('G',$now);

    echo "$hr:$min\n";

    foreach($jobsQueue AS $job) {

        if($job[0] == $min && $job[1] == $hr) {
            system("$job[5]>NULL");
        }

    }

    sleep(60);
}
?>

nightly_script.php

// Process Hand Histories
system('perl myscript.pl');

?>

фрагмент кода

while ( ($key, $value) = each(%players) ) {
                print "$key => $value\n";
                if($value > 0)
                {
                    $uname = $key;
                    $uname =~ s/player(.*)(\s*)/$1/;

                    $connect = DBI->connect("DBI:mysql:database=$config_mysql_db;host=$config_mysql_server",$config_mysql_user,$config_mysql_pass,{'RaiseError' => 1});

                    print "\n*****\n$uname\n*****\n";

                    $updateStatement = "INSERT statement";
                    $executeStatement = $connect->prepare($updateStatement);
                    $executeStatement->execute();

                    $updateStatement = "UPDATE command";
                    $executeStatement = $connect->prepare($updateStatement);
                    $executeStatement->execute();

                    delete $players{$key};
                    # Clean up the record set and the database connection
                    $connect->disconnect(); 

                }
                elsif($value <= 0)
                {
                    delete $players{$key};
                }
            }

1 Ответ

1 голос
/ 09 декабря 2011

Поскольку в perl нет такого журнала, как php, вы можете создать свой собственный файл журнала, перенаправив stdout и stderr в файл. Попробуйте сделать это, изменив системный вызов в nightly_script.php.

system('perl myscript.pl 1>myperllog.txt 2>&1');

или

system('perl myscript.pl 1>myperllog.txt 2>myperllog.err');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...