加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows Azure上的长时间运行(或永久性)任务

发布时间:2020-12-14 02:54:04 所属栏目:Windows 来源:网络整理
导读:我需要每隔50秒左右将一些数据写入数据库.它类似于在后台运行并静默执行其工作的 Windows服务.在我的情况下,启动和停止不是一个选项,因为我需要将少量先前插入的数据存储在内存中.使用Windows Azure或AWS时,最佳解决方案是什么? 谢谢. 解决方法 使用Windows
我需要每隔50秒左右将一些数据写入数据库.它类似于在后台运行并静默执行其工作的 Windows服务.在我的情况下,启动和停止不是一个选项,因为我需要将少量先前插入的数据存储在内存中.使用Windows Azure或AWS时,最佳解决方案是什么?

谢谢.

解决方法

使用Windows Azure,您可以选择Web角色或辅助角色(基本上都是Windows 2008 Server R2或SP2),并且可以选择某种类型的定时事件,如@Lucifure建议的那样.您还可以运行Quartz.net之类的调度程序,或利用Windows Azure队列或服务总线队列在特定时间显示消息.但是:您不能在给定的角色实例中执行“永久”任务,因为定期重新启动VM实例(例如,每月进行主机操作系统维护).通过角色关闭,您会注意到,您可以在Stopping()或OnStop()中处理这些关闭通知.如果您有多个实例,则可以使用调度程序或队列来确保事件仍然每50秒左右触发一次,并在多个实例中处理(但在任何给定时间只能由一个实例处理).

为了保留内存中的信息,一个想法是将该信息存储在缓存中.你有2个选择:

>分布式(共享)缓存服务,已经存在了一段时间.它独立于您的角色实例运行.
>内存缓存,刚刚于2012年6月推出.假设您有多个实例,缓存将分布在这些实例中.您甚至可以在现有角色的内存中运行缓存.

有关缓存的更多信息是here.

有关Quartz.net和Windows Azure的一些StackOverflow答案,例如this one.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读