0

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

我想要实现的是在一个小时过去后重置状态变化。听听这个例子,这样你就可以理解我想要做什么:

设备可以检测报告为事件的更改,因此设备与各种事件相关,而事件仅与一个设备相关。当一个新的事件插入数据库时​​,设备进入警报状态,因此该设备的状态列更改为警报,经过 1 小时后,该设备的状态列必须返回正常

我想创建一个线程,但我是 WCF 的新手,所以我不知道这是否会消耗大量资源,所以我想到了使用 Worker Role,但它也会在服务启动的整个过程中保持运行。充其量我想让任何可以处理此问题的进程进入睡眠状态,直到设备的状态再次发生变化,但同样,我不知道让线程/工作者角色睡眠是否会消耗大量资源。

我怎样才能在不使用太多资源的情况下实现这种行为?

4

1 回答 1

1

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

于 2013-01-22T20:53:08.200 回答