Celery allows you to set MessageGroupId on any task but Kombu has this condition inside the SQS transport:
|
if queue.endswith('.fifo'): |
|
if 'MessageGroupId' in message['properties']: |
|
kwargs['MessageGroupId'] = \ |
|
message['properties']['MessageGroupId'] |
This makes it impossible to use SQS fair queues that rely on the MessageGroupId being set on non-FIFO queues:
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fair-queues.html
BTW, it is very inconvenient that Kombu does not warn about silently dropping unsupported message properties. It would save us time if Kombu issued a warning about discarding the message group. I imagine it would be equally frustrating if I made a typo in the property name.
Celery allows you to set
MessageGroupIdon any task but Kombu has this condition inside the SQS transport:kombu/kombu/transport/SQS.py
Lines 466 to 469 in b8cf1f6
This makes it impossible to use SQS fair queues that rely on the
MessageGroupIdbeing set on non-FIFO queues:https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fair-queues.html
BTW, it is very inconvenient that Kombu does not warn about silently dropping unsupported message properties. It would save us time if Kombu issued a warning about discarding the message group. I imagine it would be equally frustrating if I made a typo in the property name.