Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 如何确保轮询过程的冗余_Design Patterns_Architecture_Implementation_Polling_Long Polling - Fatal编程技术网

Design patterns 如何确保轮询过程的冗余

Design patterns 如何确保轮询过程的冗余,design-patterns,architecture,implementation,polling,long-polling,Design Patterns,Architecture,Implementation,Polling,Long Polling,我需要使用Python轮询数据库表(DB2)。这个表经常更新,所以我并不特别担心空ping。我想得到一些关于如何确保这种轮询过程冗余的技巧。如果我只有一个进程(我们称之为A),那么在A失败的情况下就没有备份。如果我创建了两个进程A和B,那么如何确保一次只有一个进程轮询数据库,并且只有在第一个进程失败时,另一个进程才会启动 我知道这个问题太宽泛了,但是,如果能提供一些关于最新设计模式或框架的建议,帮助我实现冗余,我将不胜感激。如果能更好地工作,我可以用Java代替Python。您需要保留ping的

我需要使用Python轮询数据库表(DB2)。这个表经常更新,所以我并不特别担心空ping。我想得到一些关于如何确保这种轮询过程冗余的技巧。如果我只有一个进程(我们称之为A),那么在A失败的情况下就没有备份。如果我创建了两个进程A和B,那么如何确保一次只有一个进程轮询数据库,并且只有在第一个进程失败时,另一个进程才会启动


我知道这个问题太宽泛了,但是,如果能提供一些关于最新设计模式或框架的建议,帮助我实现冗余,我将不胜感激。如果能更好地工作,我可以用Java代替Python。

您需要保留ping的状态/结果,并使其对两个进程都可用。这可以保存在缓存、文件等中。有一个进程ping并向文件/cache/etc写入最后更新的时间戳。另一个进程仅在文件/cache/etc未更新时运行

这类过程封装在分布式锁处理程序和集群管理器中,如