Эмуляция работы Cron на Windows. Отправка http запросов на сервер каждые 5 минут

Нашел следующее решение.

Сначала надо написать скрипт, который будет отправлять http запрос. Вот он весь ниже написан на jscript (реализация javascript от Microsoft).

var request = new ActiveXObject("Msxml2.XMLHTTP.3.0");
var url = "http://localhost/cronScript.php";
request.open("GET", url);
request.send(null);
WScript.Sleep(500); // чтобы скрипт не завершился, прежде чем запрос уйдет в сеть

WScript.echo("Done!!!");

Последнюю строку можно, убрать - она просто выводит сообщение (надо просто убедиться, что он отрабатывает). Строка "WScript.Sleep(500);" также определяет время работы скрипта. Весь этот код сохраните в файл c расширением .js например cronScript.js.

Теперь надо создать задачу в планировщике Windows. Для этого нажмите Win+R -> Выполнить taskschd.msc
Можно также Панель управления (расширенный вид) -> Администрирование -> Планировщик заданий.

В расположенном справа меню Действия:

  1. нажмите Создать задачу (или Создать простую задачу).
  2. В окне "Создание задачи" введите название новой задачи и ее описание.
  3. Переключитесь на вкладку "Триггеры" , нажмите кнопку "Создать" и назначьте дату, время и частоту выполнения задачи. Тут поставьте галочку "Повторять каждые 5 минут".
  4. Теперь в разделе "Действия" создайте новый пункт "запуск программы" и укажите путь к нашему cronScript.js.

Это все. Теперь если по адресу localhost/cronScript.php (а именно сюда указывает наш скрипт) поместить следующий php код

<?php
    $handle = fopen("cronLog.txt", "a");
    $str = "Last timestamp: ".date("H:i:s")."\n";
    fwrite($handle, $str);
    fclose($handle);

То в файл cronLog.txt будет записываться каждые 5 минут метка времени. Вот и все, ребята.

Однако стоит отметить, что есть возможность запуска скрипта (любой задачи) чаще, чем раз в 5 минут. Для этого надо просто выделить "5 мин." и написать ( именно написать, так как в впадающем списке такого нет) "1 мин." при настройке триггера. Тогда все заработает. Правда, когда я так сделал мой антивирус удалил скрипт (разумно - каждую минуту запрос на сервер). Но я восстановил его из хранилища вирусов и все заработало (можно просто добавить его в исключения антивируса).

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

круто)
замечание: когда описываете последовательность действий/переходов оформляйте их либо списком (как это я уже переделал в вашей заметке) либо как-то так:

действие1
-> действие2
-> действие3
-> действие4
-> действие5
->  и т.д.

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

добавьте статью в PHP справочник

_____________
матфак вгу и остальная классика =)