Я пытаюсь выполнить отправленное сервером событие, чтобы постоянно обновлять базу данных, когда страница клиента активна. Чтобы предотвратить тяжелую загрузку mysql, я решил использовать sleep (10) для создания интервала. Но я обнаружил, что функция sleep () вызывает проблемы с производительностью. Я хотел бы знать, что любой метод может заменить сон, чтобы сделать интервал.
Проблемы, стоящие перед:
1. Перезагрузить страницу займет много времени.
2. Во время сна другая страница не может быть обработана.
Ниже приведен мой пример кода, который я использую в настоящее время.
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$updated_time = date("Y-m-d H:i:s");
$sql = "UPDATE mytable SET alive='$updated_time' WHERE status='active'";
runSql($sql);
echo "data: {$updated_time} \n\n";
sleep(10);
flush();
Задача ещё не решена.
Других решений пока нет …