在服务器场中共享定期任务的最佳策略

我有一个问题。假设您有一个业务定期任务,例如每个月产生余额。该任务可以在服务器场中运行,因此如果运行定期任务的计算机失败,则必须将其传递给另一台计算机。 那么,我怎样才能坚持定期任务并在农场安全?我已经想到了一个持久的共享队列,但我很困惑。 有任何想法吗? 提前致谢。     
已邀请:
您的问题中缺少很多因素。你是如何访问任务的?它是一个Web服务吗?远程程序调用?它是自己运行然后将结果存储在共享文件夹中吗? 如果它只是Web服务,那么解决方案可能只是按顺序查询它们,如果一个不可用,那么继续下一个...可能rpc只能用相同的程序处理。当然,这不是很好的扩展,它有点特别,但如果你没有时间做其他事情,它可能只是做的伎俩。 如果你有足够的时间和金钱来进行真正的扩展,你应该看一下控制重新配置,这是你正在寻求的容错类型的基础。当然,这意味着一个控制器(监督机器,如@jldupont称之为),以及许多机制和努力,以保持一切。 只有你真的需要它才值得。是时间和金钱上的巨大投资,所以不要因为很酷而大胆地做。     
从1到> 1始终是一大步。 选项1 你需要(除其他外): 主管机器 心跳协议/故障检测 作业调度程序的选举协议 Job Scheduler 工作报告 等等 选项2 只需让多台机器执行任务并从其中一台机器中选择成功输出(或者如果您认为需要,则使用多数投票)。     
不确定你的技术堆栈是什么,但看看Quartz(如果你使用.NET堆栈,请看Quartz.net)。 Quartz是一个企业作业调度程序,具有强大的故障转移/ HA功能。     

要回复问题请先登录注册