例如:我的一个应用程序在固定时间间隔内从外部资源检索一些内容。我想到了以下几种方案:
1. 在单台机器上运行。问题:如果此实例崩溃,则无法检索内容。 2. 在群集的每台机器上运行。问题:将多次检索内容。 3. 在群集的每台机器上都安装该应用程序,但是只在其中一台机器上运行。每个实例都必须检查某种公共资源,以确定是否轮到自己执行任务。
当我考虑解决方案 #3 时,我想知道公共资源应该是什么。我想创建一个数据库表,在其中可以使用它来获取全局锁。
这是最好的解决方案吗?人们通常如何做到这一点?
顺便说一下,这是运行在 Windows Server 2008 上的 C# .NET WCF 应用程序。