并行(twisted)队列(已排序)实现?

2024-10-05 10:58:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用twisted框架来设计一个应用程序,在队列中添加多字段元素。在

应用程序将使用队列并进行其他延迟。问题是我不想按添加的顺序来使用队列元素,而是根据元素字段内容对某些元素赋予更高的优先级。在

我目前的想法(可能是错误的)是有一个生成器,它执行一个sqlselect,它生成一个具有适当优先级的结果集,然后迭代这个结果来生成延迟。问题是,当生成器在结果集上迭代时,可能会延迟将其他元素添加到队列中。在

有没有办法在每次调用生成器时都不执行新的select?一、 e.“结果集”和迭代器光标能否自动“更新”?在

如果没有,您将如何实现这一点?在


Tags: 框架应用程序元素内容队列顺序错误twisted
2条回答

队列模块有一个PriorityQueue类,可以满足您的需要。在

为什么不使用Python列表,使用stdlib中的模块“heapq”来保持它的优先级顺序呢?(你的列表元素应该是元组,有(优先级,插入时间,对象)-而且由于数据保存在普通的Python列表中,所以你可以在twisted应用程序中无问题地传递数据。在

我认为如果你需要的只是按优先级排序的话,这会比使用sqlite容易得多。在

(在这个答案中,我举了一个heapq的用法示例,可以帮助: heapq with custom compare predicate

相关问题 更多 >

    热门问题