Kotlin协同路由优先级发送通道实现

Kotlin协同路由优先级发送通道实现,kotlin,kotlin-coroutines,Kotlin,Kotlin Coroutines,我已经使用一个Coroutine Actor、SendChannel和CompletableDeferred实现了一个基本队列,用于按顺序处理命令。这与预期一样有效,但我想为队列中的项目(QueueItem)添加优先级,以便在处理优先级较低的项目之前先处理优先级较高的项目 以下是我当前的实现: private-suspend-fun-processItem(命令:command){ val queueItem=queueItem.Data(命令) channel.send(队列项) //响应是完

我已经使用一个Coroutine Actor、SendChannel和CompletableDeferred实现了一个基本队列,用于按顺序处理命令。这与预期一样有效,但我想为队列中的项目(QueueItem)添加优先级,以便在处理优先级较低的项目之前先处理优先级较高的项目

以下是我当前的实现:

private-suspend-fun-processItem(命令:command){
val queueItem=queueItem.Data(命令)
channel.send(队列项)
//响应是完全延迟的
queueItem.response.await()
}
val通道:发送通道=
coroutineScope.actor(容量=通道.无限){
用于(通道中的队列项目){
val结果=进程(queueItem.command)
queueItem.response.complete(结果)
}
}
有一个类似的问题,但我不确定如何将其应用于演员+频道。如何为队列中的项目添加优先级