Доки по CRON

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 17 октября 2012 в 16:39
Ткните в документацию по CRON если не сложно… что то не могу найти…
#2 17 октября 2012 в 20:40
#3 17 октября 2012 в 20:46

Вот и Вот

st.Puh
Умничка, а теперь по крону ICMS !?
#4 17 октября 2012 в 20:53
а что конкретно по CRON'у ICMS интересует?
#5 17 октября 2012 в 20:58
Ну я в компонент календарь хочу добавить уведомления. Мне нужен крон чтобы он проверял — подошло ли время уведомлять или нет — а если да посылать ЛС
#6 17 октября 2012 в 21:12
За работу с cron отвечает класс cmsCron.

Обычно в инсталлере компонента регистрируют задачу, например так:

  1. cmsCron::registerJob('moveArticlesToArchive', array(
  2. 'interval' => 24,
  3. 'component' => 'content',
  4. 'model_method' => 'moveArticlesToArchive',
  5. 'comment' => 'Переносит просроченные статьи в архив',
  6. 'custom_file' => '',
  7. 'enabled' => 1,
  8. 'class_name' => '',
  9. 'class_method' => ''
  10. ));
Называния элементов массива вроде бы ясны интуитивно, но на всякий случай расшифрую:
interval — интервал выполнения задания вне зависимости как часто запускается сам файл cron.php который в корне сайта;
component — название компонента если используется для запуска метод модели компонента;
model_method — название метода модели компонента, используется если задано название компонента;
comment — текстовое пояснение задачи;
custom_file — путь до файла, содержимое которого будет выполняться;
enabled — включена или выключена задача;
class_name — файл|класс, пример: actions|cmsActions или класс, пример: cmsDatabase
class_method — статический (public static) метод класса, заданного выше.

В таблице cms_cron есть еще поле is_new — оно отвечает за то, что при добавлении нового задания, как я описал выше, оно выполнится первый раз сразу при ближайшем запуске cron.php в корне сайта. Будем говорить так, что при положительном значении поля, задание выполнится вне зависимости от интервала, однако после первого запуска значение этого поля автоматически станет равным 0.

Небольшой нюанс: если интервал (interval) указать как "0", то задание будет выполняться каждый раз при запуске системного задания, т.е. выполнением файла cron.php в корне сайта.

В данном примере мы создали задачу, которая будет выполняться каждые 24 часа запуская метод модели moveArticlesToArchive компонента content.
#7 17 октября 2012 в 21:13
а при установке компонента добавить в задачи крон выполнение функции из модели(можно и из любого файла), которая будет проверять и кидать сообщение не пробовал?

  1. INSERT INTO `#__cron_jobs` (`job_name`, `job_interval`, `component`, `model_method`, `custom_file`, `is_enabled`, `is_new`, `comment`, `class_name`, `class_method`) VALUES
  2. ('Заголовок задачи', интервал выполнения, 'компонент(если есть)', 'метод в модели компонента', 'путь к файлу из которого выполнять(если указан компонент оставить пустым)', активирован?, , 'описание задачи', 'указать класс в файле(пустой если из компоненты)', 'указать метод в этом классе(пустой если компонента)');
вообщем для тебя будет что то типо
  1. INSERT INTO `#__cron_jobs` (`job_name`, `job_interval`, `component`, `model_method`, `custom_file`, `is_enabled`, `is_new`, `comment`, `class_name`, `class_method`) VALUES
  2. ('Проверка события', 0, 'calendar', 'checkTime', '', 1, 1, 'Проверяет подошло ли время события для уведомления о нем пользователя', '', '');
  3.  
#8 17 октября 2012 в 21:15
еще есть поле is_new — только не понятно его функциональное предназначение 😊))
#9 17 октября 2012 в 21:22
Всё тогда :)) Будут скоро уведомления в календаре! :)))

Похожие темы

Настройка cron

Релизы 2.X Создана 4 года назад 8 сообщений

Cron то работает, то нет

Релизы 2.X Создана 4 года назад 1 сообщение

[ЕСТЬ РЕШЕНИЕ] Перестал работать CRON

Релизы Создана 3 года назад 35 сообщений

[ЗАКРЫТО] И снова Cron

Вопросы настройки InstantCMS Создана 3 года назад 6 сообщений

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.