Nir*_*Nir 5 .net c# queue encoding
我想构建一个Windows服务,它将使用远程编码服务(如encoding.com,zencoder等)上传视频文件进行编码,在编码过程完成后下载它们并处理它们.
为了做到这一点,我考虑使用不同的队列,一个用于处理当前正在等待的文件,一个用于上传文件,一个用于等待编码完成的文件,另一个用于下载它们.每个队列都有一个限制,例如,在某个时间只能上传5个文件进行编码.队列必须是可见的并且能够从崩溃中恢复 - 目前我们通过将队列写入SQL表并管理单独表中的项目数来实现.
我还希望队列在后台运行,彼此独立,但能够在进程继续时将文件从一个队列传输到另一个队列.
我最大的问号是关于如何构建队列和管理它们,而不是限制每个队列中的项目数量.
我不确定这是什么方法,并且非常感谢任何帮助.
谢谢!
您可能不需要将工作分成单独的队列,只要它们以某种方式在逻辑上分开(用不同的“作业类型”等标记)即可。
在我看来,挑战在于根据作业类型,不要从队列中拾取和处理超过给定有限数量的作业。不久前我遇到了一个有点类似的问题,这导致了一个关于 SO 的问题,以及随后的博客文章和我的解决方案,这两者都可能会给您一些想法。
简而言之,我的解决方案是保留一个“令牌”列表。当我想要执行一项有某种限制的工作时,我首先会拿起一个令牌。如果没有可用的代币,我将需要等待一个可用的代币。然后您可以使用任何适合的排队机制来处理队列。
归档时间: |
|
查看次数: |
1310 次 |
最近记录: |