Cron и Denwer

В сфере своей рабочей деятельности, я часто пользуюсь продуктом под названием Denwer. Если кто не знает, то они это действительно Джентльменский набор Web-разработчика. При помощи этого бесплатного пакета я написал исключительно все свои скрипты, плагины и вообще всю работу PHP я веду на ДенWере.

Но вот иногда мне необходимо протестировать CRON. Я не буду объяснять что это такое (для тех кто не знает), если интересно, то отправляйтесь в поисковик и черпайте информацию. Если сказать кратко, то это “планировщик заданий”, но для *nix-подобных систем. И сегодня я расскажу, при помощи каких средств можно имитировать лично я имитирую его на Windows-системах, используя пакет Denwer.

Сразу оговорюсь, я не буду имитировать своего рода многозадачность процессов, отслеживания и т.п. вещей. Нет, я покажу, как делать своего рода “элементарный” CRONjob для Denwer`а. Под этим понятием я подразумеваю файл, который прекрасно запускается и выполняет свою работу, если его запустить в браузере. Но однако же его нужно запускать через определённое время (каждую минуту, каждые 2 минуты, 5 минут и т.д. и т.п.).

Итак есть два пути. Вернее сначала я нашёл сложный путь и хотел описать именно его, а затем я вспомнил о втором пути, гораздо более простом (потому как я пользуюсь браузером Опера), и начну именно с этого метода.

1. Итак в браузере Opera есть специальная фича, благодаря которой можно обновлять страницу через определённый (выбранный пользователем) промежуток времени. Чтобы долго про это не рассказывать я представлю картинку. Вводите необходимый адрес (скрипт запускается), а затем правой кнопкой открываете меню и далее, как на картинке:

image

2. Есть такая программа nnCron, которая бесплатна для всех русскоговорящих пользователей и которая не смотря на свой маленький объём является достаточно мощным планировщиком заданий. Её сленговое название в сети “крон для виндовз”. Второй способ заключается практически в той же самой идее, только с использованием этой программы и тем самым, если по каким-то глупым причинам вы не пользуетесь браузером Опера, то этот способ подойдёт для вас.

В чём проблема? А проблема в том, что я перелопатил кучу инфы и нигде толком не написано, как же в nnCron правильно написать скрипт на своём внутрискриптовом языке, чтобы запускать каждую минуту тот или иной файл (в сети или на виртуальном сервере). Я даже пытался запустить напрямую PHP с параметрами, где параметром был нужный мне php-файл. А вот фиг, не работает и всё тут. Самое обидное, что в огромном хелпе на русском языке на странице разработчика, нет такого простого и элементарного примера, но зато по всему интернету (можете поискать) мольбы и просьбы подобного плана “ну покажите, ну расскажите, ну объясните, как же запустить php-файл используя Denwer или любой другой сервер”. Ну что же всё вроде бы просто, хотя на мой взгляд через одно место :-) .

Итак, скачиваете программу, устанавливаете, перезагружаете компьютер. После перезагрузки у вас в трее появится значёк в виде квадратного циферблата. Затем запускаете Денвер. Кликайте на циферблат правой кнопкой и выбирайте “добавить задачу”.

image

Далее введите имя задачи АНГЛИЙСКИМИ БУКВАМИ, установите требуемое вам время и нажмите на вкладочку Действие.

image

В раскрывающемся списке выберите “Запустить скрипт”

image

И введите вот такой скрипт:

S" http://localhost/mails/start_cron.php" HTTP-GET 
IF 
S" 123.html" FWRITE 
ELSE 2DROP THEN

Естественно вместо http://localhost/mails/start_cron.php вы должны ввести адрес своего виртуального места, где лежит у вас ваш скрипт. По идее первой строки должно быть достаточно и самое интересно, что программа Крон-а работает, но выкидывает ошибку и именно поэтому яназвал этот метод через задницу дописал совершенно ничего не делающие строки условия в несуществующий файл (ПРИМЕЧАНИЕ!!! если у вас этот файл существует, то естественно вставьте вместо 123.html другое имя файла).

Итого вводим эти строки и нажимаем OK.

image

Ну вот наш виртуальный крон уже работает. Удачных всем разработок и успехов!

Автора автора