责任链模式(Responsibility Chain Pattern)在实际场景中的应用

背景

  • 最近项目中遇到这样的业务场景:用户可以将自己的视频通过系统分发到下游平台需要经历若干个步骤:
    • 初始化分发任务,记录一条分发任务,状态为分发中
    • 视频格式转换,不同的平台所需要的格式不同,此处需要调用第三方格式转换接口,同时还需要提供一个格式转换通知接口,供第三方处理完成后通知系统处理结果。
    • 视频码率转换,生成一个低码率的文件,供用户预览。与上一步一样,此处也需要调用第三方转码接口,同时还需要提供一个转码通知接口,供第三方处理完成后通知系统处理结果。
    • 分发到下游平台
  • 经过业务分析后发现,该流程每个步骤分的很清楚,每一步都有自己的职责,是责任链模式的使用场景,与标准责任链场景不同的是,该场景中由第三方回调进行流程的串联,流程图如下:
graph LR
初始化processor-->转格式processor
转格式processor-->第三方格式转换
第三方格式转换-->转码processor
转码processor-->第三方转码
第三方转码-->分发processor
  • 实现该业务场景需要:
    • 初始化processor(InitProcessor)
    • 转格式processor(FormatProcessor)
    • 转码processor(TranscodeProcessor)
    • 分发processor(DistributeProcessor)
    • 转格式通知接口(Controller)
    • 转码通知接口(Controller)

processor的设计

  • 抽象父类:DistributionProcessor,可以看到该数据结构为链表结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值