Twilio Fax выдает 500 внутренних ошибок сервера на StatusCallback в Django

Я не уверен, что я могу добавить к ответам выше, но вот несколько моментов от меня:

Типы времени

Существует четыре разных раза, рассмотрите:

  1. Время события: например, время, когда происходит международное спортивное событие, или коронация / смерть / и т. д. Это зависит от часового пояса события, а не от зрителя.
  2. Телевизионное время: например, конкретное телешоу транслируется в 9 вечера по местному времени по всему миру. Важно, когда вы думаете о публикации результатов (например, American Idol) на своем веб-сайте
  3. Относительное время: например: этот вопрос закрыт открытой щедростью за 21 час. Это легко отобразить
  4. Время повторения: например: ТВ-шоу происходит каждый понедельник в 9 вечера, даже когда изменяется DST.

Существует также историческое / альтернативное время , Это раздражает, потому что они не могут вернуться к стандартному времени. Например: юлианские даты, даты по лунному календарю на Сатурне, календарь Клингонов.

Хранение старта / конца временных меток в UTC работает хорошо. Для 1 вам потребуется имя часового пояса + смещение, сохраненное вместе с событием. Для 2 вам нужен локальный идентификатор времени, хранящийся в каждом регионе, и локальное имя часового пояса + смещение, хранящееся для каждого зрителя (это можно получить из IP-адреса, если вы находитесь в хрусте). Для 3, сохранить в UTC секунд и нет необходимости в часовых поясах. 4 является частным случаем 1 или 2 в зависимости от того, является ли это глобальным или локальным событием, но вам также необходимо сохранить , созданную на отметке времени , чтобы вы могли определить, изменилось ли определение часового пояса до или после этого событие было создано. Это необходимо, если вам нужно показать исторические данные.

Время хранения

  • Всегда сохранять время в UTC
  • Преобразовать в локальное время на дисплее (локальный определяемый пользователем, смотрящим на данные)
  • При хранении часового пояса вам нужно имя, временная метка и смещение. Это необходимо, потому что правительства иногда меняют значения своих часовых поясов (например: правительство США изменило даты DST), и ваше приложение должно обрабатывать вещи изящно ... например: точная метка времени, когда эпизоды LOST показывали как до, так и после правил DST

Смещения и имена

Примером приведенного выше может быть:

Игра в финале Кубка мира по футболу произошла на Юге Африка (UTC + 2 - SAST) 11 июля 2010 года в 19:00 UTC.

С помощью этой информации мы можем исторически определить точное время, когда финал WCS 2010 года состоялся даже если южноафриканское определение часового пояса изменится и сможет отображать это для зрителей в их локальном часовом поясе в момент запроса базы данных.

Системное время

Вам также необходимо сохранить файлы вашей ОС, базы данных и приложений tzdata в синхронизации, как друг с другом, так и с остальным миром, и широко тестировать при обновлении. Не удивительно, что стороннее приложение, от которого вы зависите, неправильно обрабатывало изменения TZ.

Убедитесь, что аппаратные часы настроены на UTC, и если вы используете серверы по всему миру, убедитесь, что их ОС также настроены на использование UTC. Это становится очевидным, когда вам нужно копировать почасовые файлы файлов apache с серверов в несколько часовых поясов. Сортировка их по имени файла работает только в том случае, если все файлы названы с тем же часовым поясом. Это также означает, что вам не нужно делать математику с датой в голове, когда вы используете ssh из одного окна в другой, и вам нужно сравнить временные метки.

Кроме того, запустите ntpd во всех ячейках.

Клиенты

Никогда не доверяйте метке времени, которую вы получаете с клиентской машины, как действительный. Например, заголовки Date: HTTP или javascript Date.getTime(). Они хороши при использовании в качестве непрозрачных идентификаторов или при выполнении математики даты в течение одного сеанса на одном и том же клиенте, но не пытайтесь перекрестно ссылаться на эти значения на то, что у вас есть на сервере. Ваши клиенты не запускают NTP и могут не иметь рабочий аккумулятор для своих часов BIOS.

Trivia

Наконец, правительства иногда будут делать очень странные вещи:

Стандартное время в Нидерландах было ровно 19 минут и 32,13 секунды до UTC по закону с 1909-05-01 по 1937-06-30. Этот часовой пояс не может быть представлен точно с использованием формата HH: MM.

Хорошо, я думаю, что все готово.

0
задан Antoine Vo 1 April 2019 в 16:33
поделиться