Domnívám se, že výchozí pořadí vyřazování z fronty je první dovnitř, první ven, takže budou vyřazeny ve stejném pořadí, v jakém byly zařazeny.
K druhému bodu, říkáte, že chcete serializovat dequeue na nejedinečné-id? To znamená, že máte ve frontě v podstatě mnoho front a chcete, aby zprávy z každé fronty spotřebovávala pouze jedna úloha v jeden okamžik?
To znamená, že máte zprávy:
1 | a
2 | a
3 | b
4 | a
Zde máte dva typy záznamů (a a b) a chcete, aby jedna úloha spotřebovala všechna a a další, aby spotřebovala všechna b. V takovém případě zvažte vytvoření více front?
Pokud selže více front, podívejte se na typ dequeue_options_t, který předáte proceduře dequeue – zejména dequeue_condition – to vám umožní vybrat pouze konkrétní zprávy, takže můžete spustit úlohu pro všechna písmena „a“ a další pro všechna „b“ atd.