pou*_*def 10 sql messaging rabbitmq
我正在使用RabbitMQ让工作进程编码视频文件.我想知道所有文件何时完成 - 也就是说,当所有工作进程都完成时.
我能想到的唯一方法是使用数据库.视频完成编码后:
UPDATE videos SET status = 'complete' WHERE filename = 'foo.wmv'
-- etc etc etc as each worker finishes --
Run Code Online (Sandbox Code Playgroud)
然后检查所有视频是否都已编码:
SELECT count(*) FROM videos WHERE status != 'complete'
Run Code Online (Sandbox Code Playgroud)
但是,如果我要这样做,那么我觉得我正在失去RabbitMQ作为多个分布式工作进程的机制的好处,因为我仍然需要手动维护数据库队列.
RabbitMQ依赖项是否有标准机制?也就是说,一种方式说"等待这5个任务完成,一旦完成,然后启动新任务?"
我不希望让父进程将这些任务添加到队列中,然后"等待"它们中的每一个都返回"已完成"状态.然后我必须为每组视频维护一个单独的过程,此时我已经失去了与单个ThreadPool概念相比分离的工作进程的优势.
我要求的东西是不可能的吗?或者,是否有标准的广泛采用的解决方案来管理我错过的队列中的整体任务状态?
编辑:搜索之后,我发现了类似的问题:使用RabbitMQ获得长时间运行任务的结果
人们对此有什么特别的想法吗?
| 归档时间: |
|
| 查看次数: |
4388 次 |
| 最近记录: |