如何增加失败下载的每次重试之间的延迟

n3h0vuf2  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(254)

我有一个spark流媒体工作,接收来自Kafka的消息。对于某些消息,文件是从外部源下载的。如果由于某种原因,外部源没有响应,作业将重试几次。
如果它仍然无法下载文件,我喜欢回到一个小时,然后再试一次。如果仍然失败,则应将延迟加倍,并在2小时后重试,以此类推。
使用kafka和spark实现这一点的好方法是什么?
一种想法是将下载失败的信息发布回kafka上的一个新主题,添加下次应该重试的时间,然后每10分钟运行一次批处理作业,接收下载失败的信息。然后,作业应执行以下操作:1。对于重试时间未过的所有下载,将消息重新发布到kafka。2对于重试时间已过的所有下载,请重试下载,如果成功,则一切正常,但如果失败,则会将信息以新的重试时间发回kafka。
我不喜欢这个解决方案的一点是,它接收并发布延迟未通过的消息,从而导致超过必要的通信量。
我想知道这个解决方案的利弊,或者是否有更好的方法来实现这个。
谢谢塞巴斯蒂安

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题