很简单,我使用Redis INCR来确保计数器的原子增量,计数器的不确定起始值小于Int64.MaxValue.
Redis在达到Int64.MaxValue或抛出错误时是否重置该值?
我阅读了文档,但没有说明会发生什么,我确实希望在翻转时保持原子性
我希望得到一些关于我打算用来防止 ASP.NET MVC 4 应用程序中重复记录的方法的反馈,以及我没有想到的对用户体验的影响。
Web 表单有六个输入字段和一个保存按钮(以及一个取消按钮),用户最多可能需要 10 分钟来填写表单。
通过帖子提交字段后,页面将在成功/失败时重定向到不同的页面,然后使用新的 Guid 作为主键将数据记录在数据库表中。
为了阻止用户多次按下保存按钮,但允许浏览器在关闭的连接上重新发布请求,我打算在呈现表单时为新记录的主键提供 Guid 作为隐藏的输入字段。
如果发生repost,或者用户多次按save,数据库服务器会因为key重复而拒绝记录的第二个post,我可以在服务器端检查和处理。
但这会给我带来更大的问题吗?
当我觉得它应该返回8.25时,下面的代码返回9.25,我有什么误解?
(new DateTimeOffset(2014,09,04,08,15,00,new TimeSpan(0,0,0))).Subtract(new DateTimeOffset(2014,09,04,08,15,00,new TimeSpan(0,0,0)).Date).TotalHours
Run Code Online (Sandbox Code Playgroud)
更简单地显示为: -
DateTimeOffset start = new DateTimeOffset(2014,09,04,08,15,00,new TimeSpan(0,0,0));
double result = start.Subtract(start.Date).TotalHours
Run Code Online (Sandbox Code Playgroud)
在时区GMT的Windows 7 PC上运行(调整为夏令时): -
9月12日结果= 9.25
12月12日结果= 8.25