Почему это не работает ? Если кому охота разбираться подскажите пожалуйста
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- $num_starts = 960; // Количество запусков скрипта за промежуток времени
- $hours = 8; // Количество часов, в течение которых нужно запускать скрипт $num_starts раз.
- $time_sec = $hours*3600; // Количество секунд в цикле запусков
- //Генерируем интервал между запусками.
- function add_time2start() {
- global $time_sec, $time_to_start;
- $time_to_start[] = $new_time;
- } else {
- add_time2start(); // Если такое время уже есть - генерируем заново.
- }
- }
- //массив времен запуска
- $k = 1;
- if ($_SESSION["num_st"] == "" || $_SESSION["num_st"][$num_starts-1] < time()) { // проверка, что в сессию не записаны данные и что эти данные не устарели.
- do {
- add_time2start($k);
- $k++;
- } while ($k < = $num_starts);
- $_SESSION["num_st"] = $time_to_start;
- }
- $start_time = $start_array[1]; // получаем стартовое время скрипта
- do{
- //// Если текущее время есть в массиве с временами выполнения скрипта......
- // Сокетом цепляемся к файлу с основным содержанием действий
- /// заодно передаем ему данные сессии и время когда он должен сработать
- fputs($http, "GET http://test.ru/exec.php?".session_name()."=".session_id()."&nowtime=$nowtime HTTP/1.0\r\n");
- } //// выполнили заданное действие
- // Узнаем текущее время чтобы проверить, дальше ли вести цикл или перезапустить
- $now_time = $now_array[1];
- // вычитаем из текущего времени начальное начальное
- $exec_time = $now_time - $start_time+$exec_time;
- /// тормозимся на секунду
- //Остановка скрипта, работающего в фоновом режиме. Я другого способа не придумал.
- //Проверяем время работы, если до конца работы скрипта
- //осталось менее 5 секунд, завершаем работу цикла.
- } while($exec_time < ($max_exec - 5));
- // Запускаем этот же скрипт новым процессом и завершаем работу текущего
- fputs($http, "GET http://test.ru/index.php?".session_name()."=".session_id()."&bu=$max_exec HTTP/1.0\r\n");
- ?>