[IT happens]Почему время надо считать в UTC
От: Michael7 Россия  
Дата: 11.03.11 09:17
Оценка: 1 (1) :)))
http://ithappens.ru/story/5637

Доводили мы до ума на заводе с богатой бюрократической практикой новую программу. Продукт был большой, серьёзный, работал круглосуточно, потреблял много серверов и был уже практически готов. Осталось навешать плюшек и оперативно реагировать на запросы и ситуации.

Как-то в конце зимы возникла проблема: ночью программа работала, следила за оборудованием и ничего криминального не находила. Вообще ничего не находила. Совсем. А утром оказалось, что на сервере тихо слетели демоны обработки данных от датчиков, главная программа этого не заметила и полную тишину из цеха воспринимала как вполне законный покой и порядок. Проблема решилась простым перезапуском сервера, а программисты получили втык и выпустили патч. Теперь, если программа совсем ничего не видит в логах данных с периферии заданное время, то поначалу вежливо интересуется у оператора: «А не отказали ли у тебя, друг мой, датчики? Может, канал связи? Сервер не сбоит случайно?» После этого программа начинает активно паниковать и ругаться и требует проверить, почему не поступает данных из цеха. Запустили в работу. Всем нравится, сменные довольны новой проверке с гарантией.

Март. Выходные. Стрелки переводят на час вперёд. Сменный сидит за пультом, рядом монитор с работающей программой. Все хорошо и спокойно. Программа зарегистрировала и записала в базу сигнал с датчика о повышении температуры на 0,1 градуса. На часах 01:59:59. Проходит секунда, на часах ровно два. Операционка помнит, что как раз сегодня нужно отработать перевод часов, и выставляет на часах 03:00:00. Программа обнаруживает, что с 01:59:59 она не регистрировала данных. Вообще. Совсем. Аж целый час. Жуткая паника…

Утро. Программистам втык. Снова патч.

Конец октября. Выходные. Смена времени с летнего на зимнее. Все ошибки учтены, все возможные и невозможные проблемы пофикшены. На часах 02:59:59. Всё хорошо. Операционка планово отрабатывает перевод стрелок — на часах ровно 02:00:00, 01, 02… Однако час назад, в два часа три секунды по летнему времени, программа зарегистрировала и обработала сообщение с очередного датчика из цеха. Но на часах снова ровно два часа ночи и три секунды — и сменный за пультом сосредоточенно глядит на сritical exсeption.

Утро. Программистам втык. Снова патч.


Интересно, для кого UTC придумали?
История поучительная. Но что-то мне кажется подход к контролю за контролем здесь в корне неверный.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.