gpt4 book ai didi

azure - Windows Azure 上长时间运行(或永远)的任务

转载 作者:行者123 更新时间:2023-12-02 10:08:27 24 4
gpt4 key购买 nike

我需要每 50 秒左右向数据库写入一些数据。它类似于在后台运行并默默地完成其工作的 Windows 服务。在我的情况下,启动和停止不是一个选项,因为我需要将少量先前插入的数据存储在内存中。使用 Windows Azure 或 AWS 时最好的解决方案是什么?

谢谢。

最佳答案

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

为了保留内存中的信息,一种想法是将这些信息存储在缓存中。您有 2 个选择:

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

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

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

关于azure - Windows Azure 上长时间运行(或永远)的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11235787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com