gpt4 book ai didi

mysql - 如何确定繁忙队列的优先级,以便低优先级项目也得到处理?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:09 25 4
gpt4 key购买 nike

我们已经使用 mysql 表实现了一个基本的作业队列,其中某些项目的优先级低于其余项目。由于队列中不断充满高优先级项目,因此低优先级项目有时永远得不到处理。

在我们的实现中,我们将项目及其优先级插入到表中,并从队列中获取下一个项目,我们查询表如下:

SELECT * FROM `queue` ORDER BY `priority` DESC, `created_at` ASC

我们应该如何为队列建模,以便低优先级的项目仍能及时得到处理?

编辑

队列通常包含超过 25,000 个项目。

最佳答案

也许您可以根据在队列中的时间来衡量优先级。这样,任务未完成的时间越长,优先级就会越高,最终这些任务应该移到列表的顶部。

看起来您已经有了关于任务记录时间(“created_at”)的数据,所以我认为您拥有所需的一切:

SELECT * FROM queue ORDER BY priority*( now() - created_at ) DESC

关于mysql - 如何确定繁忙队列的优先级,以便低优先级项目也得到处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18251744/

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