Функция PHP Sleep () не работает, иначе stament продолжает читать старый файл

0
ignore_user_abort();
set_time_limit(0);
$interval=60;
$flag=true;
file_put_contents("log.log","Starts \r\n");

while($flag){

  date_default_timezone_set("America/New_York");
  $mytime=date("y/m/d h:i:sa");   
  $file = fopen("C:/work/testData/test.txt","r"); 
  $myfile=fread($file,filesize("C:/work/testData/test.txt"));

  if(stristr($myfile,"Finish writing tables")){
    file_put_contents("log.log","Finished! Ready To Send Email $mytime         \r\n",FILE_APPEND);                                
    $flag=false;    
   }else{
    file_put_contents("log.log","Still Running $mytime $myfile     \r\n",FILE_APPEND);          
   }   

fclose($file);
sleep($interval);
}

Я хочу, чтобы код читал test.txt каждые 60 секунд, как только test.txt включает строку "Завершить записи таблиц", а затем остановится. Файл Test.txt обновляется другим приложением одновременно. И я нахожу это иначе {}, каждые 60 секунд он не читал обновленный файл test.txt, все еще читал старый test.txt

большое спасибо

  • 2
    Лучшим подходом в этой ситуации будет сценарий cron, который будет запускаться раз в минуту, а затем проверять только некоторые условия.
  • 0
    но я запускаю этот код на windows
Показать ещё 1 комментарий
Теги:
if-statement
sleep

1 ответ

0
Лучший ответ

задача решена.

Добавить clearstatcache() после fclose()

  • 0
    Где вы поместили clearstatcache () в коде выше?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню