J'ai configuré un simple SQS et je souhaite traiter 4 messages à la fois. Lors de mes tests, il y avait 2 messages "disponibles". Lorsque je reçois le message, il ne produit que 1 à la fois. Qu'ai-je fait de mal?
sqs = boto3.client('sqs') response = sqs.receive_message( QueueUrl=queue_url, MaxNumberOfMessages=4 )
Vous n'avez rien fait de mal et ce comportement est normal.
Cela est dû à la nature distribuée de SQS (et de la plupart des services AWS). Fondamentalement, tous les nœuds n'ont pas tous les messages disponibles, et le nœud auquel vous parlez peut renvoyer n'importe quel nombre compris entre 0 et MaxNumberOfMessages, le cas échéant. Pour recevoir plusieurs messages en un seul appel, vous aurez besoin d'avoir 100 ou plus de 1 000 messages dans la file d'attente, et même dans ce cas, vous pourriez ne pas avoir de chance et recevoir très peu de messages.
De Documents :