我在循环上运行了2个文件,master.php和bot.php:
master.php
<?php
while (1) {
include 'bot.php';
sleep(60);
}
bot.php
<?php
declare(ticks=1);
define('START_TIME', time());
// lambda uses START_TIME constant
register_tick_function(function() {
if (time() - START_TIME > 9000) {
echo 'Script execution halted. Took more than 20 seconds';
exit(1);
}
}, true);
include_once 'onefile.php';
include 'somefile.php';
include 'somefile2.php';
?>
我需要确保bot.php不会超过x秒。 如果确实如此,我需要优雅地停止/破坏bot.php循环,但保持master.php运行无限循环。
我已经尝试过this question的Josh Trii Johnston的答案,但问题是它停止了包括master.php循环在内的所有内容(这是我最初运行的文件,我不想停止)
我需要创建此超时,因为bot.php在远程服务器上执行某些任务,有时(很少)超时并冻结永久。此超时只是为了确保在这些情况下循环将中断并开始新的循环。