NutzCN Logo
分享 讨论如何实现一个任务调度系统
发布于 2984天前 作者 qq_a14b434c 2160 次浏览 复制 上一个帖子 下一个帖子
标签:

容我这里简单说一下吧。需求是做一个消息驱动的“视频转码系统”。简单的说就是收到源视频文件,下载源文件,转码为新文件,最后将新文件上传到目标服务器。问题就是,有没有现成的好用的轮子,来运转这一套系统。

需求有以几下几点:
- 任务失败之后可以自动重试(retry)或是手动重试。比如收到视频开始下载,下载过程中IO出错,触发系统retry, 比如retry三次之后,事件失败。 人工介入到系统里再retry
- 视频转码生成的文件格式有多种,需要并行处理

不需要考虑的需求有:
- 灵活的修改规则 (任务比较固定)
- 审批 (没有审批,也没有条件判断)

10 回复

直接写数据库,写个定时任务根据状态进行处理,简单明了

目前有的解决方案就是不用框架:把消息,与事件都持久化到数据库。
当任务失败的时候,把事件从数据库里读出来,再执行一次任务。

那不很好吗?我提的也是存数据库完事

来自炫酷的 NutzCN

这么个小东西还需要什么框架么?你想怎么玩就怎么玩了,直接用hashmap都可以,别把简单问题 复杂化了

如果你硬要非常严格的消息驱动,那就是另外一回事了

我只是列出了简单的核心需求,该产品是并不是一小东西。要把东西做得又快又好,就寄希望于一套成熟的框架,或是能借鉴一套成熟的产品。

讨论的重点不是指,用消息来驱动事件还是用数据库状态来驱动。
而是在这种业务场景下可以用到的技术框架,框架之间如何配合。

找到一个国人写的轮子,很有参考价值

https://github.com/snakerflow/snakerflow

snakerflow仅具有参考价值, 它已经停止更新了.

添加回复
请先登陆
回到顶部