作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个系统,用于在处理数据后异步发送邮件(处理过程最多可能需要 10 秒)。
我最初的想法是让 Windows 服务每 3 秒通过数据处理请求轮询数据库,以处理第一条记录。完成后,轮询并获取要处理的新的第一条记录。
当没有记录时,等待 3 秒并再次轮询以检查记录。
我不确定这是否是一个好主意。在我看来,使用定时器并不是一个很好的编程方式。即使不需要,数据库的性能和使用也是一个问题。
这种情况下的最佳做法是什么?
使用的技术:.NET 3.5、SQL Server,服务器位于农场中。
最佳答案
这完全取决于您创造了多少开销。
如果您可以有效地轮询数据库(即通过简单的查询),并且这种轮询不需要大量的网络流量(通常不需要),为什么不每 3 秒轮询一次?
你是如何达到第三名的?是任意的还是有理由每 3 秒精确检查一次?
为了保持查询简单,您可以使用 2 个查询:一个用于检测是否有新数据,另一个用于实际获取数据。这样您就可以优化最常发生的一个(显然是第一个)。
关于.net - 我可以每 3 秒轮询一次数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13251365/
我是一名优秀的程序员,十分优秀!