首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动化Azure VIP交换

自动化Azure VIP交换
EN

Stack Overflow用户
提问于 2013-03-26 20:26:26
回答 1查看 316关注 0票数 1

我有一个ASP.NET MVC 4应用程序作为一个Azure角色托管。我想做一些看起来应该非常标准的事情:,我想创建一个函数,我可以调用它来启动VIP交换,并在完成VIP交换操作时引发事件(或调用回调)。

只是为了给情况添加一些上下文:我的网站实现了一个大约需要一个小时(或更短时间)才能完成的工作流。如果我想发布网站代码的新版本,首先让所有当前用户完成工作流程,这样新代码就不需要处理代码的前一个版本所创建的数据了(更不用说编写“向后兼容性”代码了)。因此,我的网站中的管理功能首先会将一个值插入到禁用新工作流的数据库中;然后等待所有当前工作流完成;然后它将调用"VIP交换“例程;最后,当VIP交换例程指示其完成时,它将戳入数据库值以重新启用新的工作流。

我在这里找到了有关如何以编程方式启动VIP交换的Microsoft文档:http://msdn.microsoft.com/en-us/library/ee460814.aspx

这个过程涉及到POSTing到一个神奇的URL,并在文章中包含一些标题,然后定期执行一个GET到一个神奇的URL并检查响应代码。

我越想这件事,看起来就越不平凡。除了连接后台计时器和完成通知这一基本复杂性之外,我不知道在IIS环境中可能会遇到什么复杂性(如果有)。我甚至可以在后台线程上执行HTTP操作吗?就这一点而言,我是否会遇到复杂的情况,只想使用.NET中所使用的六种不同的“在后台做事情”机制?

如有任何帮助或指导,将不胜感激。尤其是,,如果有人能给我指点这个函数即将实现的话,我会欣喜若狂的!

EN

回答 1

Stack Overflow用户

发布于 2013-03-26 22:09:27

我不认为你会找到一个简单的解决方案,因为织物控制器是设置为做一些非常花哨的事情,而没有你的参与。在云计算环境中运行长达一小时的工作流,其中一个实例可以从您的下面提取出来(调用OnStopping事件最多需要5分钟来清理),您无论如何都需要做其他工作,以确保所有任务都完成。

简单的问题是,“如果一个实例在工作流仍在运行时出现故障,您会做什么?”你是重新启动他们还是他们迷路了?如果他们迷路了,那么无论如何你都不在乎,所以为了升级而扼杀工作流也是不重要的。如果您重新启动它们,那么使用相同的机制来决定一个节点是否将被关闭,并相应地分配作业。这个模式非常类似于Hadoop JobTracker。不要仅仅在任何'ol实例上运行工作流。将它们提交到一个(作业跟踪器)服务,该服务决定要做什么。然后,(作业跟踪器)服务可以使用服务管理API来扩展所需的多个实例,运行您想要的版本,在适当的节点上运行工作流,并在它们不再需要或过时时关闭它们。

不幸的是,这可能不是您正在寻找的简单解决方案,但是您的体系结构中的一些东西需要改变,而不是试图强迫PaaS与您当前的方法相适应。分解您的工作负载,创建松散耦合的服务,为失败进行设计,以及一些其他的云计算/分布式计算实践需要考虑。Hadoop之所以以它的方式构建是有原因的--而且它以能够在一些不可靠的商品硬件上完成工作而闻名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15646717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档