Главная / Блог / Запуск Скриптов Без Cron

Запуск Скриптов Без Cron

160

12.21.2019

Обновлено: 04.01.2020

Время прочтения: 2 минуты

Василий Кулик программист

Кулик Василий

Запуск Скриптов Без Cron

Настало время разобрать что-то приятное. А разберем мы интересную тему "запуск скриптов без cron". Чтобы Вы были Гуру.

Cron — это такая программа, позволяющая выполнять задания по расписанию, в указанное модератором время. Регулярные инструкции действий задаются в файле crontab и каталоги. Это как планировщик заданий, например, ОС Windows, или иной другой.

Почти на всех хостингах, по умолчанию, уже установлен Cron, но исключением есть отсутствие Cron. Это как правило некоторые хостинги и выделенные сервера. Не нужно отчаянно забиваться в Google, есть выход даже из такой ситуации. Хватит вступительных лекций! Спешу предоставить способы запуска скриптов без Cron.

Способы запуска скриптов без Cron:

  1. С помощью ботов, или посетителей, заходящими на сайт.
  2. С помощью Вашего ПК
  3. С помощью другого сервера имеющего Cron

Способ 1:

Как правило, регулярный запуск скриптов требуют более-менее большие проекты и на подобные сайты часто заходят люди, и боты разных поисковых систем.

К примеру, необходимо запустить скрипт один раз ночью. Для этого достаточно простых действий:

$root=$_SERVER['DOCUMENT_ROOT']; $h=date('H'); if($h>00 && $h<03 && date('d', filectime($root. '/cron/cron_last_time.txt')) != date('d')){inclide $root.'/cron/cron_1.php';}

Строка № 1 — абсолютный путь,
Строка № 2 — текущее время с ведущим нулем,
Строка № 3 логически делится на 2 этапа условия:

  1. $h>00 && $h<03 — если диапазон текущего времени более 00 и менее 03
  2. date('d', filectime($root. '/cron/cron_last_time.txt')) != date('d') - и если день последнего изменения файла не равен текущему дню даты

При выполнении всех 3-х условий - подключаем файл, со скриптом и он будет выполняться регулярно, в указанном промежутке времени. Время, разумеется, можно поменять.

В скрипте cron_1.php, обязательно изменим файл, для обновления даты изменения, добавив функцию записи:

file_put_contents($root.'/cron/cron_last_time.txt','-');

Таким способом, дата обновилась на текущий день и дни будут равны. Благодаря этому эффективному и простому алгоритму скриптовый файл по расписанию выполняться будет только один раз, игнорируя множество заходов во временном диапазоне запуска.

Второй способ:

var dt=new Date(); var h=dt.getHours();//Текущий час с ведущим нулем var d=dt.getUTCDate();//Текущий день месяца var last_d=false;//День последнего запуска setInterval(function(){//Запускаем тело функции каждые 60 сек   if(h>00&&h<03 && d!=last_d){//Если час более 00 и менее 03 - выполняем     last_d=d;//В переменную текущего дня пишем текущий день     var newWin=window.open( "http://domain.com/cron/cron_1.php", "Окно для Cron", "width=400,height=600");//Открыть окно.     setTimeout(function(){//Запустить тело функции однократно, через 3 сек.       newWin.close();//Закрыть созданное окно     },3000);   } },60000);

Для работы данного способа, необходимо создать html-файл, открыть его в браузере и он будет открывать окно, где напрямую обратится к скрипту и запустит его. Безусловно, при надобности, можно передать GET и POST, но это уже индивидуально.

В этом способе есть небольшой недостаток: скрипт открывает файл напрямую. Это значит, запустить скриптовый файл может каждый. Рекомендую передавать секретный ключ через GET, затем на сервере сравнивать. Таким образом никто кроме Вас не запустит скрипт по расписанию.

Третий способ:

  1. Создать файл с кодом для Cron
  2. Воспользовавшись планировщиком Cron, задать ему условия выполнения конкретного файла.
  3. С помощью сокетов, cURL, или функции file_get_contents обратится на другой домен, обратившись к нужному файлу, код которого необходимо регулярно выполнять. Три способа рабочие и вот они:
//с помощью cURL $ch=curl_init();// 1.инициализация // 2.указываем параметры, включая url curl_setopt($ch, CURLOPT_URL, "http://kwo-master.com/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $output=curl_exec($ch);//3.получаем HTML в качестве результата curl_close($ch);//4.закрываем соединение //С помощью сокетов $fp=fsockopen("kwo-master.com", 80, $errno,$errstr,10);//Параметры1 - Домен,2 - Порт,3 - переменная, хранящая код ошибки(необязательно), 4 - переменная, хранящая текст ошибки(необязательно),5 - время ожидания соединения(необязательно) if(!$fp){echo "Текст ошибки: $errstr<br>Код ошибки: $errno<br>\n";} else{   fputs($fp,"GET / HTTP/1.0\r\nHost: kwo-master.com\r\n\r\n");   while(!feof($fp)){echo fgets($fp,1000);}   fclose($fp); } //С помощью функции file_get_contents echo file_get_contents("http://kwo-master.com/");

Обратите внимание! В настройках интерпретатора PHP, должен быть включён модуль "openssl". Для включения, необходимо, раскомментировать строку в файле настроек php.ini "extension=openssl"

В принципе это всё! Информация проста, без воды и лекций, работающие способы. Имеете другие идеи запуска скриптов без Cron - поделитесь со мной, чтобы всё было честно ;)

Что-то не понятно?
Спросите у нас и мы обязательно Вам поможем!

Отправляя форму, Вы подтверждаете указание своего e-mail адреса.

Рекомендуемые статьи этой категории

Недостатки MVC

Проявление недостатков паттерна MVC в скорости работы PHP-скриптов и в повышенном потреблении ОЗУ сервера. Да, MVC это удобно. Реальность в том, лишь одна функция выполняется, а все другие служат мертвым кодом.

Подробнее
Как выбрать веб-студию

Правильный этап выбора веб-студии, не просто по красивом портфолио, но и по оценкам качества в Google, для создания вашего сайта, на перспективу. Оценка квалификации программистов и проверка качества сайтов в портфолио студии.

Подробнее
Идеи для дизайна сайта

Примеры самых красивых дизайнов от лучших дизайнеров на топовых платформах мира. Берите идеи и создавайте лучшие дизайны своих сайтов, для привлечения клиентов и улучшения продаж и успехов в SEO.

Подробнее
Как выбрать хостинг

Выбор хостинга, виртуального сервера(VPS), физичесского сервера, для Вашего проекта с ориентировкой на цену, посещаемость и безопасность. Современный и проверенный алгоритм выбора хостинга и сервера, чтобы Ваш сайт попал гарантированно в ТОП!

Подробнее

Оставить заявку