Как синхронизировать часы нескольких систем Fedora - PullRequest
0 голосов
/ 08 июня 2009

У меня есть система подписки, которая позволяет пользователям подписываться на вещи или людей, которые им интересны, и получать уведомления при отправке новых сообщений, файлов или изображений. Чтобы определить, является ли что-то новым, я отслеживаю их взгляды по tstamp. Проблема состоит в том, что, если веб-сервер и база данных MySQL не синхронизированы, пользователь может пропустить контент, который публикуется примерно в то же время, когда он просматривает элемент. или будет показан предмет дважды.

Я могу устранить эту проблему, извлекая tstamp из базы данных, но это большое количество подключений к базе данных только для получения tstamp. Если бы я мог регулярно синхронизировать системные часы веб-серверов с нашим сервером базы данных (по крайней мере, насколько это возможно), я бы, по крайней мере, значительно минимизировал проблему. Есть ли у кого-нибудь совет относительно лучшего способа сделать это?

Я не хочу вводить время просмотра в базу данных, используя NOW (). Я записываю представления с помощью процесса Gearman, что означает, что при входе в представление всегда есть небольшая задержка. Однако, как правило, эта задержка минимальна и может быть меньше, чем разница между системными часами, при условии, что я не могу запустить регулярную синхронизацию.

Ответы [ 2 ]

5 голосов
/ 08 июня 2009

Включить NTP .

chkconfig ntpd on
service ntpd start

Возможно, вы захотите настроить серверы времени в /etc/ntp.conf или использовать конфигурацию по умолчанию, в которой используется * .fedora.pool.ntp.org.

0 голосов
/ 08 июня 2009

Для меня я просто добавил скрипт в свой crontab. Быстро и просто, если у вас есть несколько серверов для настройки.

30 6 * * * root /usr/sbin/ntpdate -u ntp.ubuntu.com
...