Django Web服务器和;数据库
我注意到我的Web服务器(AmazonEC2)和数据库(运行PostgreSQL的AmazonRDS)之间的时间戳不匹配。他们离开了几秒钟 在数据库中创建的某些条目带有时间戳(使用SQLDjango Web服务器和;数据库,django,postgresql,datetime,amazon-web-services,Django,Postgresql,Datetime,Amazon Web Services,我注意到我的Web服务器(AmazonEC2)和数据库(运行PostgreSQL的AmazonRDS)之间的时间戳不匹配。他们离开了几秒钟 在数据库中创建的某些条目带有时间戳(使用SQLcurrent\u timestamp)。服务器读取这些条目并将时间戳与其自己的时钟进行比较(使用Djangotimezone.now())以选择比“x”分钟新的条目 这种不匹配会导致数据不一致。有什么好方法可以使我的代码对不同机器之间的时钟不匹配具有容错能力。我是否应该删除服务器端的timezone.now()
current\u timestamp
)。服务器读取这些条目并将时间戳与其自己的时钟进行比较(使用Djangotimezone.now()
)以选择比“x”分钟新的条目
这种不匹配会导致数据不一致。有什么好方法可以使我的代码对不同机器之间的时钟不匹配具有容错能力。我是否应该删除服务器端的timezone.now()
函数,改为从数据库读取时间戳?这将增加一点数据库访问开销,但时间戳将在多个web服务器上保持一致
或者,有没有更好的方法来保持两台机器的同步 如果您使用RDS,我认为没有什么可以做的,所以我会采用数据库查询方法。也许你也有同样的经历 几秒钟的失配太多了。您是否在服务器上使用NTP将时钟同步到某个参考服务器?我假设AmazonRDS确实保持时钟同步,所以我怀疑您可以通过NTP在EC2实例上做一些事情来减少偏差 如果您使用的是linux机器,则可以启用ntpd以保持时钟同步。