0

我现在正在考虑将消息队列用于“视频”项目。

成像视频服务,用户上传视频然后截图,短视频缩略图和不同的视频大小由脚本制作(现在如何并不重要)。无论如何,要考虑的更重要的是前端(网络上传服务器)和后端服务器(视频处理服务器)之间的通信。

所以过程可能是:

  1. 用户来到网站
  2. 用户上传新视频
  3. 上传脚本将新消息添加到消息队列(嘿,有新视频,处理它)
  4. 在这种状态下,用户可以在“已上传”状态的视频列表中看到视频

这是我实际上不知道该怎么做的部分。

  1. 消费者从消息队列中获取消息并开始处理它。
  2. 消费者检测到它是视频 - 如果现在它会失败
  3. 消费者制作截图(需要很长时间),消费者会通知网络截图已经制作(???如何??? - 我应该将新消息放入消息队列吗?)
  4. 消费者调整视频大小(需要很长时间) - 同样的问题 - 消费者应如何通知网站,视频调整大小已完成?

所以,问题是如何处理来自后端服务器的消息。我猜消费者会将另一条消息放入某个日志队列,其他网络消费者将处理它们并更新数据库。这样对吗?

4

1 回答 1

2

只需创建两个队列:一个用于作业,第二个用于响应。

过程:

  • 用户 -> 工作队列 -> 工作人员
  • worker(s) -> 消息队列 -> USER

第二个消费者可以是一切——将结果写入数据库的进程,或者——例如——立即发送通知的 WebSocket 服务器。

于 2013-11-30T21:03:08.453 回答