Saya telah mengkonfigurasi SQS mudah dan saya mahu memproses 4 mesej sekaligus. Dalam ujian saya, ia mempunyai 2 "tersedia" mesej. Apabila saya menerima mesej, ia hanya menghasilkan 1 pada satu masa. Apa yang saya buat salah?
sqs = boto3.client('sqs') response = sqs.receive_message( QueueUrl=queue_url, MaxNumberOfMessages=4 )
Anda tidak melakukan kesalahan dan tingkah laku ini adalah perkara biasa.
Ini disebabkan oleh sifat pengedaran SQS (dan kebanyakan perkhidmatan AWS). Pada asasnya, tidak semua nod mempunyai semua mesej yang tersedia, dan nod yang anda bercakap mungkin mengembalikan sebarang nombor antara 0 dan MaxNumberOfMessages jika ada. Untuk benar-benar menerima berbilang mesej dalam satu panggilan, anda perlu mempunyai 100 atau 1000+ mesej dalam baris gilir, dan walaupun begitu anda mungkin kurang bernasib baik dan menerima sangat sedikit mesej.
Dari Dokumen: