我应该使用Worker Role或Thread来重置数据库中条目的状态吗?

本文关键字:数据库 状态 置数据 Worker Role Thread 我应该 | 更新日期: 2023-09-27 17:55:05

我开发了一个WCF web服务,它的方法之一是在数据库中创建一个新条目,并更改另一个表中条目的状态。

我想要实现的是在一个小时后重置状态的变化。听一下这个例子,这样你就能明白我在做什么了:

设备可以检测到作为事件报告的变化,因此设备与各种事件相关,而事件仅与一个设备相关。当一个新的Event被插入到数据库中时,设备进入警报状态,因此该设备的状态列更改为 alert , 1小时后该设备的状态列必须返回到Normal

我想创建一个线程,但我是WCF的新手,所以我不知道这是否消耗了很多资源,所以我想使用一个Worker Role,但这也在服务启动的整个时间里保持运行。在最好的情况下,我想让任何处理这个问题的进程休眠,直到设备的状态再次改变,但是,我不知道让线程/工作者角色休眠是否会消耗大量资源。

如何在不使用太多资源的情况下实现这种行为?

我应该使用Worker Role或Thread来重置数据库中条目的状态吗?

不要使用线程——如果应用程序需要关闭(部署、故障等),线程就会丢失,工作也会在线程上排队。使用持久的计时器服务,如Windows任务调度程序或库,如Quartz.NET。