我正在处理守护进程,并想知道使用 PHP 执行此操作的可行性(就内存和 CPU 使用以及可靠性而言):
<?php
// Ignore user aborts and allow the script
// to run forever
ignore_user_abort(true);
set_time_limit(0);
$fp = fopen('loop.log', 'w');
fwrite($fp, date('Y-m-d H:i:s') . ' Started' . PHP_EOL);
while(1) {
fwrite($fp, date('Y-m-d H:i:s') . ' Looped' . PHP_EOL);
if (file_exists('loop.stop')) {
break;
}
// Sleep for 100 seconds
sleep(100);
}
fwrite($fp, date('Y-m-d H:i:s') . ' Stopped' . PHP_EOL);
fclose($fp);
这个简单的例子(改编自ignore_user_abort的 PHP 手册)只是容器脚本。实际功能将放置在while
循环内。
我已经让这个脚本在我的笔记本电脑上运行了 7 个小时,它看起来很好,但它并没有做太多。有没有其他人试过这个?