Страница 1 из 1

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

Добавлено: Пн май 08, 2017 1:51 pm
Velizar
Вопрос пожалуй к автору - возможно в систему
к объекту 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']));
 

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

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

можно конечно элементарно дописать руками в мэйнцикле, но при обновлении пропадет

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

Добавлено: Пт май 19, 2017 5:25 pm
Velizar
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 мне кажется хорошей идеей :)

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

Добавлено: Пт май 19, 2017 9:59 pm
xor
у меня есть скрипт newDay- он выполняется по
1. условию - время=00:00 в Cron
2. добавлен в метод ThisComputer.StartUp