filehandler cron job需要睡眠以免错误运行

时间:2012-10-22 07:04:49

标签: php file-io fopen

以下代码每36小时随机中断一次。确保info.txt的正确性。 print 'test';sleep(1);之间的简单$handlewhile可以解决问题,但为什么呢?

$handle = fopen("http://www.domain.do/info.txt", "r");
while (!feof($handle)) {
  // [do stuff]
}
fclose ($handle);

代码由cron作业运行。

2 个答案:

答案 0 :(得分:2)

添加sleep()或一些延迟将给fopen时间从该位置检索文件...我假设“随机”效应可能是网络上的流量,导致检索比平时略长。 / p>

您可以尝试使用cURL来检索数据:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.domain.do/info.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);

$output将包含文件的内容,因此您需要将字符串拆分为数组,可能使用newline作为分隔符...只是猜测不知道文件的内容:)

答案 1 :(得分:0)

非常感谢。这项工作在短期内无错误地卷曲。我也要长期检查一下。在7天内,我会给你反馈。