Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous Symfony Messenger在所有高优先级消息之后使用低优先级消息_Asynchronous_Symfony4_Symfony Messenger - Fatal编程技术网

Asynchronous Symfony Messenger在所有高优先级消息之后使用低优先级消息

Asynchronous Symfony Messenger在所有高优先级消息之后使用低优先级消息,asynchronous,symfony4,symfony-messenger,Asynchronous,Symfony4,Symfony Messenger,在所有高优先级消息被消费之前,有没有办法阻止消费者食用低优先级消息 我正在考虑在低优先级消息处理程序中检查队列状态,但是这个解决方案看起来并不优雅,而且可能很危险。可能太晚了,但我们找到了一种适合我们需要的方法 基本上,高优先级作业在DB中写入数据。然后,当低优先级作业启动时,它首先检查锁:如果锁在那里,我们用延迟戳重新安排作业 作为高优先级作业的一部分,最后一步是移除锁。然后,当低优先级作业再次到达时,可以对其进行处理。通过这样做,我们能够管理三个具有不同优先级的队列。然而,我们在流程中增加了

在所有高优先级消息被消费之前,有没有办法阻止消费者食用低优先级消息


我正在考虑在低优先级消息处理程序中检查队列状态,但是这个解决方案看起来并不优雅,而且可能很危险。

可能太晚了,但我们找到了一种适合我们需要的方法

基本上,高优先级作业在DB中写入数据。然后,当低优先级作业启动时,它首先检查锁:如果锁在那里,我们用延迟戳重新安排作业


作为高优先级作业的一部分,最后一步是移除锁。然后,当低优先级作业再次到达时,可以对其进行处理。通过这样做,我们能够管理三个具有不同优先级的队列。然而,我们在流程中增加了复杂性。

设置不起作用吗?“工作进程将始终首先查找等待async\u priority\u high的消息。如果没有消息,则它将使用async\u priority\u low的消息”。建议的解决方案在上一个高优先级消息启动后立即开始使用低优先级消息,即使它尚未完成。我想他希望只有在队列中没有高消息时才开始处理低消息(我也在寻找解决方案)。@Mochilo这正是我想要实现的。如果你有什么可以帮忙的,请告诉我。