gpt4 book ai didi

c# - 设计 : Queue Management question (C#)

转载 作者:太空狗 更新时间:2023-10-29 23:42:09 25 4
gpt4 key购买 nike

我想建立一个windows服务,将使用远程编码服务(如encoding.com、zencoder等)上传视频文件进行编码,编码过程完成后下载它们,并进行处理。

为了做到这一点,我正在考虑使用不同的队列,一个用于处理当前正在等待的文件,一个用于处理正在上传的文件,一个用于等待编码完成的文件,还有一个用于下载它们。每个队列都有一个限制,例如在某个时间只能上传 5 个文件进行编码。队列必须可见并且能够从崩溃中恢复——目前我们通过将队列写入 SQL 表并在单独的表中管理项目数来实现这一点。

我还希望队列在后台运行,彼此独立,但能够随着进程的进行将文件从一个队列传输到另一个队列。

我最大的疑问是关于如何构建和管理队列,而不是限制每个队列中的项目数量。

我不确定什么是正确的方法,非常感谢任何帮助。
谢谢!

最佳答案

您可能不需要将工作分成单独的队列,只要它们在逻辑上以某种方式分开(标记为不同的“工作类型”等)即可。

在我看来,挑战在于根据作业类型,不要从队列中提取和处理超过给定数量的作业。前一段时间我遇到了一个类似的问题,导致了 question here on SO ,以及随后的 blog post with my solution ,两者都可能会给您一些想法。

简而言之,我的解决方案是保留一个“ token ”列表。每当我想执行一项有某种限制的工作时,我都会先拿起一个 token 。如果没有可用的 token ,我将需要等待一个可用。然后,您可以使用任何适合处理队列的排队机制。

关于c# - 设计 : Queue Management question (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com