AWS SQS ReceiveMessage Adakah anda menerima lebih sedikit mesej daripada yang anda minta?
P粉894008490
P粉894008490 2023-12-24 10:50:53
0
1
455

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
)

P粉894008490
P粉894008490

membalas semua(1)
P粉654894952

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:

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan