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

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

243

12.21.2019

Обновлено: 04.03.2023

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

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

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

Запуск Скриптов Без 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", если работаете на Windows. Для включения, необходимо, раскомментировать строку в файле настроек php.ini "extension=openssl"

Или установить его, с помощью командной строки, через SSH-соединение по 22-му порту.

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

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

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

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

Идеи для дизайна сайта

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

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

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

Подробнее
Ошибки в верстке новичков и опытных

ТОП распространенных ошибок верстальщиков и методы исправления. Скриншоты результатов ошибок и примеры кода, для их устранения.

Подробнее
Оптимизация верстки + 10 трендовых фишек

Узнайте о фишках оптимизации вашей верстки HTML+CSS и ваши сайты станут еще быстрее, лучше и с высокой оценкой качества. Вы узнаете о легком способе оптимизации изображений, шрифтов, текста и кода.

Подробнее

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