좋아요, 정우님. 😊
rabbitmq-c에서 사용하는
amqp_queue_declare(conn, 1, queue, 0, 0, 0, 1, amqp_empty_table);
각 인자의 의미를 하나씩 자세히 설명드리겠습니다.
amqp_queue_declare(
amqp_connection_state_t state,
amqp_channel_t channel,
amqp_bytes_t queue,
amqp_boolean_t passive,
amqp_boolean_t durable,
amqp_boolean_t exclusive,
amqp_boolean_t auto_delete,
amqp_table_t arguments
);
stateamqp_connection_state_tconn = amqp_new_connection() 후 사용channelamqp_channel_tqueueamqp_bytes_tamqp_cstring_bytes("test_queue")""로 주면 RabbitMQ가 임시 이름 생성passiveamqp_boolean_tdurableamqp_boolean_texclusiveamqp_boolean_tauto_deleteamqp_boolean_targumentsamqp_table_tamqp_empty_table = 기본값, 옵션 없음amqp_table_t args = amqp_empty_table;
args.num_entries = 1;
args.entries[0].key = amqp_cstring_bytes("x-message-ttl");
args.entries[0].value.kind = AMQP_FIELD_KIND_I32;
args.entries[0].value.value.i32 = 60000; // 1분 TTL
amqp_queue_declare(
conn, // 연결
1, // 채널 1
queue, // "test_queue"
0, // passive = 새로 생성 가능
0, // durable = 서버 재시작 후 삭제됨
0, // exclusive = 모든 연결 접근 가능
1, // auto_delete = 마지막 컨슈머 떠나면 삭제
amqp_empty_table // arguments = 추가 옵션 없음
);
test_queue를 생성, 임시/비영속 큐, 마지막 소비자 떠나면 자동 삭제원하시면 제가 이거를 포함해서 ffmpegd C 데몬 + RabbitMQ consumer + stdout 로그 + signal 처리 통합 예제도 만들어 드릴 수 있습니다.
그거 만들어 드릴까요?