Найти тему

Использование объектов Битрикс в CRON

Часто в крупных проектах возникает ситуация когда требуется часть  логики сайта, связанную с исполнением периодических и продолжительных  функций выполнять через планировщик задач. В UNIX-средах таким  планировщиком является cron. В этой небольшой статье я покажу как это  можно сделать на небольшом примере.
Часто в крупных проектах возникает ситуация когда требуется часть логики сайта, связанную с исполнением периодических и продолжительных функций выполнять через планировщик задач. В UNIX-средах таким планировщиком является cron. В этой небольшой статье я покажу как это можно сделать на небольшом примере.

Без использования объектов Битрикс

Конечно, если вам нужно сделать какие-то действия, например почистить определенную папку, то подключать и использовать объекты Битрикс не требуется и для такого случая можно просто сделать скрипт такого вида:

// файл cronscript.php
#!/usr/bin/php
<?

// ваш код…

?>

и добавить в крон такую строку (если вам нужно выполнять скрипт в 0:00 каждый день):
0 0 * * * [путь_к_файлу]/cronscript.php >> [путь_к_файлу]/cronscript.log

Не забудьте сделать исполняемым файл cronscript.php командой chmod +x cronscript.php .

С использованием объектов Битрикс

Но если вам требуется использовать объекты битрикс, например вам нужно удалить старые капчи, которые накопились за сутки, то нужно подключить ядро Битрикс. Сделаем это:

// файл cronscript.php
#!/usr/bin/php
<?php
$_SERVER[«DOCUMENT_ROOT»] = «/home/hosting/www»;
$DOCUMENT_ROOT = $_SERVER[«DOCUMENT_ROOT»];

define(«NO_KEEP_STATISTIC», true);
define(«NOT_CHECK_PERMISSIONS», true);

require($_SERVER[«DOCUMENT_ROOT»].»/bitrix/modules/main/include/prolog_before.php»);
set_time_limit(0);

//ваш код…
CCaptchaAgent::DeleteOldCaptcha(86400);

require($_SERVER[«DOCUMENT_ROOT»].»/bitrix/modules/main/include/epilog_after.php»);
?>

Из кода видно, что вам будет нужно определить DOCUMENT_ROOT, где находится файлы вашего сайта на Битрикс и после этого подключить ядро. Этот скрипт точно также нужно сделать исполняемым и сделать аналогичную запись в cron.

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц