AMQP-CONSUME(1) RabbitMQ C Client AMQP-CONSUME(1)

amqp-consume - مصرف پیام‌ها از یک صف در کارساز AMQP

amqp-consume [OPTION...] {command} [args...]

دستور amqp-consume پیام‌ها را از یک صف در کارساز AMQP دریافت و مصرف می‌کند. به ازای هر پیام دریافتی، یک دستور گیرنده اجرا می‌شود و بدنهٔ پیام از طریق ورودی استاندارد در اختیار آن قرار می‌گیرد.

دستور amqp-consume می‌تواند پیام‌ها را از یک صف موجود مصرف کند، یا می‌تواند یک صف جدید ایجاد نماید. همچنین به صورت اختیاری می‌تواند صف را به یک exchange موجود متصل (bind) کند.

به طور پیش‌فرض، پیام‌ها با تایید دریافت صریح (explicit acknowledgements) مصرف می‌شوند. یک پیام تنها در صورتی تایید (acknowledge) می‌شود که دستور گیرنده با موفقیت خارج شود (یعنی با کد وضعیت خروج صفر). حالت “no ack” در AMQP (که با نام حالت auto-ack نیز شناخته می‌شود) می‌تواند با گزینهٔ -A فعال شود.

-q, --queue=queue name

نام صفی که قرار است پیام‌ها از آن دریافت و مصرف شوند.

اگر گزینهٔ --queue حذف شود، کارساز AMQP یک نام یکتا به صف اختصاص می‌دهد و آن نام اختصاص‌یافته توسط کارساز در stderr نمایش داده خواهد شد؛ این حالت به این معنی است که باید یک صف اختصاصی (exclusive) اعلان شود.

-e, --exchange=exchange name

مشخص می‌کند که یک صف اختصاصی (exclusive) اعلان شود و به exchange داده‌شده متصل گردد. exchange مشخص‌شده باید از قبل وجود داشته باشد، مگر اینکه از گزینهٔ --exchange-type برای درخواست ایجاد یک exchange استفاده شود.

-r, --routing-key=routing key

کلید مسیریابی (routing key) برای اتصال (binding). در صورت حذف، یک کلید مسیریابی خالی در نظر گرفته می‌شود.

-d, --declare

اعلان یک صف اختصاصی (exclusive) را اجباری می‌کند، حتی زمانی که در حالت عادی چنین نباشد. یعنی زمانی که نام صف با گزینهٔ --queue مشخص شده است، اما هیچ اتصالی به exchange با گزینهٔ --exchange درخواست نشده باشد. توجه: این گزینه منسوخ شده است و ممکن است در نسخه‌های بعدی حذف شود؛ از گزینهٔ --exclusive برای اعلان صریح یک صف اختصاصی استفاده کنید.

-x, --exclusive

صف‌های اعلان‌شده به طور پیش‌فرض غیر اختصاصی هستند؛ این گزینه اعلان صف‌های اختصاصی (exclusive) را اجباری می‌کند.

-A, --no-ack=routing key

فعال‌سازی حالت “no ack”: کارساز AMQP بدون قید و شرط هر پیامی را که تحویل داده می‌شود تایید می‌کند، صرف‌نظر از اینکه دستور مقصد با موفقیت به پایان برسد یا خیر.

-c, --count=limit

توقف مصرف پس از دریافت تعداد مشخص‌شده از پیام‌ها.

-p, --prefetch-count=limit

از کارساز درخواست می‌کند که در هر نوبت تنها limit پیام ارسال کند.

اگر مقداری به --count داده شده باشد، مقدار ارائه‌شده به --prefetch-count باید از آن کوچک‌تر باشد، در غیر این صورت نادیده گرفته خواهد شد.

در صورت استفاده از -A/--no-ack، این گزینه هیچ تاثیری نخواهد داشت.

مصرف پیام‌ها از یک صف موجود به نام “myqueue” و نمایش بدنهٔ پیام‌ها در خروجی استاندارد از طریق cat:

$ amqp-consume -q myqueue cat

اتصال یک صف اختصاصی جدید به exchange با نام “myexch” و ارسال بدنهٔ هر پیام به اسکریپت myscript به همراه تایید خودکار دریافت آن‌ها در کارساز:

$ amqp-consume -A -e myexch ./myscript

librabbitmq-tools(7) گزینه‌های مربوط به اتصال را که بین تمام ابزارهای RabbitMQ C Client مشترک است شرح می‌دهد.

The RabbitMQ Team <<info@rabbitmq.com>>

2026-06-15 RabbitMQ C Client