目前我司的一个产品,有一个功能是这样的: 1.web 端上传文件,文件的类型包括 视频,文档,音频(其中视频和文档( office 全家桶,pdf,txt 等)) 2.文件上传后会判定是否需要转换操作,然后启用新的进程去执行相关转换软件的 CLI 3.在转换操作前会执行数据库操作( oracle ),相关文件的操作记录,转换完成后更新记录操作 目前的问题: 1.文件上传后,我们是不知道转换的进度的,只知道有没有转换成功 或者失败,具体服务器是一个什么状态是不知道的。 2.服务器是 win 的,因为在 linux 下文档转换的效果达不到要求 3.这一个过程是是耦合在一起的 现在想要改成的样子: 1.想要将文件上传和文件转换拆分成单独的服务,文件上传已经单独搞成 nio 来提高性能,文件转换正在重构中 2.文件转换的服务 要求是可以查询到实时的进度,文件上传后可以触发文件转换服务器去转换,进度可以实时的在前端显示出来 目前难点: 文件上传服务和文件转换服务的通讯机制,我想了 http 的形式,mq 的形式(大材小用),观察者模式( watcher ) 都不是好方法,比如 http 的形式,因为转换肯定不是一个很快的过程,所以容易超时。 有什么方案可以解决这样的问题吗? 一个是通讯机制,一个是实时进度问题