如何解决什么是存储UpdatedAt或ExpireAt时间戳以限制超时更新的正确方法
我需要实现功能来存储一些每周更新一次的值。 我是通过以下方式实现的:
class Example
{
//Stored in db
public int _value;
//Stored in db
public DateTime _updatedAt;
//Stored in db
public DateTime _canUpdateAfter;
//Constant in code
public TimeSpan _updateTimeout = TimeSpan.FromMinutes(1);
public void StoreValue1(int value)
{
if (DateTime.Now - _updatedAt < _updateTimeout)
{
return;
}
_value = value;
_updatedAt = DateTime.Now;
}
public void StoreValue2(int value)
{
if (_canUpdateAfter > DateTime.Now)
{
return;
}
_value = value;
_canUpdateAfter = DateTime.Now + _updateTimeout;
}
}
我有两种实现方法:
- 将更新的时间存储在db中,并计算是否以.net代码传递超时。
- 在db中超时时存储值,并将其与.net代码中的当前值进行比较。
使用哪个,为什么?
解决方法
两个解决方案都是有效的。
两种方法之间的唯一区别是决定设置下一次更新可能性的时间。
使用解决方案1,您可以在代码评估中做出每个决定,而其他人则可以根据过去的情况做出决定。
我更喜欢解决方案1;更灵活,更可持续。
请记住您的业务变更更新频率的情况。解决方案1足以部署或更改假设配置表的一行新代码,而解决方案2则需要更新表的所有行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。