К объекту ClockChime добавить метод OnNewDay

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Ответить
Velizar
Сообщения: 37
Зарегистрирован: Ср фев 15, 2017 10:54 pm
Благодарил (а): 9 раз
Поблагодарили: 7 раз

К объекту ClockChime добавить метод OnNewDay

Сообщение Velizar » Пн май 08, 2017 1:51 pm

Вопрос пожалуй к автору - возможно в систему
к объекту ClockChime добавить метод OnNewDay

в коде cycle_main.php есть заготовка

Код: Выделить всё

if ($dt != $old_date)
   {
      //echo "new day\n";
      $old_date = $dt;
   }
 
Но по ходу дело дальше не дошло :D

Так как есть такие скрипты которые достаточно выполнять раз в сутки и при старте системы. Например чтобы получить астрономическую информацию, вот что-то нахалтурил

Код: Выделить всё

// Визначення астрономічних даних
$sun_info = date_sun_info(time(), 50.XXXXXXXX, 26.XXXXXXXX);

// Схід сонця
setGlobal('ThisComputer.SunRiseTime',date("H:i", $sun_info['sunrise']));

// Захід сонця
setGlobal('ThisComputer.SunSetTime',date("H:i", $sun_info['sunset']));

// Тривалість світлового дня
setGlobal('ThisComputer.DayLengthTime',gmdate("H:i", $sun_info['sunset'] - $sun_info['sunrise']));

// Сонце в зеніті
setGlobal('ThisComputer.SunTransitTime',date("H:i", $sun_info['transit']));

// Початок ранкових сутінок - civil_twilight_begin
setGlobal('ThisComputer.CivilTwilightBeginTime',date("H:i", $sun_info['civil_twilight_begin']));

// Кінець вечірніх сутінок - civil_twilight_end
setGlobal('ThisComputer.CivilTwilightEndTime',date("H:i", $sun_info['civil_twilight_end']));
 
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

Re: К объекту ClockChime добавить метод OnNewDay

Сообщение nightwind » Пн май 08, 2017 2:55 pm

Зачем тебе их переть в базу, эти значения? я сделал файл с объектом астрономии, положил в папку библиотек, и обращаюсь к нему когда надо.
Но если так сильно хочется OnNewDay
вставь в onNewMinute
if (timeIs('00:00')) callMethod('чтото.OnNewDay');

можно конечно элементарно дописать руками в мэйнцикле, но при обновлении пропадет
Velizar
Сообщения: 37
Зарегистрирован: Ср фев 15, 2017 10:54 pm
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: К объекту ClockChime добавить метод OnNewDay

Сообщение Velizar » Пт май 19, 2017 5:25 pm

nightwind писал(а):Зачем тебе их переть в базу, эти значения? я сделал файл с объектом астрономии, положил в папку библиотек, и обращаюсь к нему когда надо.
Но если так сильно хочется OnNewDay
вставь в onNewMinute
if (timeIs('00:00')) callMethod('чтото.OnNewDay');

можно конечно элементарно дописать руками в мэйнцикле, но при обновлении пропадет
А дописать код в cycle_main.php, если там есть заготовка - наверное автор планировал его сделать.
И наверное надо сделать чтобы OnNewDay выполнялся при старте системы.
Ваш код

Код: Выделить всё

if (timeIs('00:00'))  callMethod('чтото.OnNewDay');
выполнится только в 00:00, а если систему запустили в 12:00 - выполнение кода произойдет только через 12 -часов.

Наличие метода OnNewDay у Timer мне кажется хорошей идеей :)
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: К объекту ClockChime добавить метод OnNewDay

Сообщение xor » Пт май 19, 2017 9:59 pm

у меня есть скрипт newDay- он выполняется по
1. условию - время=00:00 в Cron
2. добавлен в метод ThisComputer.StartUp
Ответить