我需要在我的Web服务中创建一个线程,以便在每个特定时间检查数据库中的某些数据。
答案 0 :(得分:1)
我不会这样做。该线程将随应用程序池而死。创建一个Windows服务,使用Thread
或Timer
来检查数据库。
答案 1 :(得分:1)
你为什么要这样做?
如果您的服务是按次呼叫(即不是单身),则应该在呼叫之后立即释放服务请求所涉及的所有资源。如果您生成一个线程,请求将保持活动状态,直到您的线程完成。
此外,定期检查数据库中的数据在 Web服务调用中没有意义,这应该在很短的时间内完成,否则会导致可伸缩性。
您可能是指单个服务器对象服务请求中的单例Web服务。在这种情况下,您需要首先创建单例对象 - 最有可能是在自动启动的Windows服务中。
您的数据库轮询很可能用于缓存某些流行值,以便服务请求不需要访问数据库本身。在这种情况下,您的服务实际上是一个中间层。除非您知道数据库中的数据变化频繁,否则请考虑使用调用Web服务的数据库中的触发器替换数据库轮询以更新新数据。