make script execution to unlimited

前端 未结 3 730
故里飘歌
故里飘歌 2020-12-08 18:07

I need to run a script into localhost (xampp) which will generate 14400 records and adds them into database, I have set the max_execution_time = 50000000000, I

相关标签:
3条回答
  • 2020-12-08 18:45

    Your script could be stopping, not because of the PHP timeout but because of the timeout in the browser you're using to access the script (ie. Firefox, Chrome, etc). Unfortunately there's seldom an easy way to extend this timeout, and in most browsers you simply can't. An option you have here is to access the script over a terminal. For example, on Windows you would make sure the PHP executable is in your path variable and then I think you execute:

    C:\path\to\script> php script.php
    

    Or, if you're using the PHP CGI, I think it's:

    C:\path\to\script> php-cgi script.php
    

    Plus, you would also set ini_set('max_execution_time', 0); in your script as others have mentioned. When running a PHP script this way, I'm pretty sure you can use buffer flushing to echo out the script's progress to the terminal periodically if you wish. The biggest issue I think with this method is there's really no way of stopping the script once it's started, other than stopping the entire PHP process or service.

    0 讨论(0)
  • 2020-12-08 18:50

    You'll have to set it to zero. Zero means the script can run forever. Add the following at the start of your script:

    ini_set('max_execution_time', 0);
    

    Refer to the PHP documentation of max_execution_time

    Note that:

    set_time_limit(0);
    

    will have the same effect.

    0 讨论(0)
  • 2020-12-08 19:06

    As @Peter Cullen answer mention, your script will meet browser timeout first. So its good idea to provide some log output, then flush(), but connection have buffer and you'll not see anything unless much output provided. Here are code snippet what helps provide reliable log:

    set_time_limit(0);
    ...
    print "log message";
    print "<!--"; print str_repeat (' ', 4000); print "-->"; flush();
    print "log message";
    print "<!--"; print str_repeat (' ', 4000); print "-->"; flush();
    
    0 讨论(0)
提交回复
热议问题