网络服务器和时间之间的时钟不匹配数据库

时间:2015-06-01 16:25:10

标签: django postgresql datetime amazon-web-services

我注意到我的网络服务器(Amazon EC2)与我之间的时间戳不匹配。数据库(运行PostgreSQL的Amazon RDS)。它们会在几秒钟后关闭。

在数据库中创建了一些带有时间戳的条目(使用SQL current_timestamp)。服务器读取这些条目并将时间戳与其自己的时钟(使用Django timezone.now())进行比较,以选择比“x”分钟更新的条目。

这种不匹配会导致数据不一致。什么是让我的代码容错不同机器之间时钟不匹配的好方法。我应该删除服务器端的timezone.now()函数,而是从数据库中读取时间戳吗?这将增加数据库访问的轻微开销,但时间戳将在多个Web服务器之间保持一致。

或者,有没有更好的方法来保持2台机器的同步?

2 个答案:

答案 0 :(得分:1)

我不认为如果您使用RDS可以做很多事情,所以我会采用数据库查询方法。也许你遇到同样的bug

答案 1 :(得分:1)

几秒钟的不匹配太多了。您是否在服务器上使用NTP将时钟同步到某个参考服务器?我假设Amazon RDS确实保持时钟同步,所以我怀疑你可以通过NTP在你的EC2实例上做些什么来减少偏差。