【发布时间】:2017-12-28 07:05:17
【问题描述】:
所以这里是问题陈述。我有一项服务于移动设备的服务。触发事件的每个用户都会向服务发送消息以注册自己。之后,服务从注册时开始定期(比如 5 分钟)执行一组特定的任务。因此,每个用户的执行时间会根据注册时间而有所不同。
我使用线程和计时器实现了这一点,它在一定程度上起作用,但是随着用户的增加,线程被杀死并且任务没有完成。此服务也托管在 azure 上。我创建了一个带有 WebHtpp 绑定的 WCF 服务,它接受并返回 JSON 数据。
网络工作是给我的建议。但由于执行时间不同,我也无法使用它。是否可以使用 C# 和 asp.net 执行这样的任务,还是我完全走错了方向。
【问题讨论】:
-
为什么不设置一个固定的时间间隔:创建一个在那个时候为所有注册设备执行任务的进程。因此,一旦注册了设备,它最多需要等待 4.99 分钟,然后才能启动该设备的任务。这样您就不必保留很多计时器或类似的东西。
标签: c# multithreading wcf azure