mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
feat(RabbitMQ Trigger Node): Add exchange and routing key options (#7547)
RabbitMQ trigger needs binding for some cases. For example, I need to consume some domain events in my application and they are published with routing key. --------- Co-authored-by: teomane <emre.teoman@bordatech.com>
This commit is contained in:
@@ -76,6 +76,19 @@ export async function rabbitmqConnectQueue(
|
|||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
await channel.assertQueue(queue, options);
|
await channel.assertQueue(queue, options);
|
||||||
|
|
||||||
|
if (options.binding && ((options.binding as IDataObject).bindings! as IDataObject[]).length) {
|
||||||
|
((options.binding as IDataObject).bindings as IDataObject[]).forEach(
|
||||||
|
async (binding: IDataObject) => {
|
||||||
|
await channel.bindQueue(
|
||||||
|
queue,
|
||||||
|
binding.exchange as string,
|
||||||
|
binding.routingKey as string,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
resolve(channel);
|
resolve(channel);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
reject(error);
|
reject(error);
|
||||||
|
|||||||
@@ -139,6 +139,39 @@ export class RabbitMQTrigger implements INodeType {
|
|||||||
},
|
},
|
||||||
description: 'Max number of executions at a time. Use -1 for no limit.',
|
description: 'Max number of executions at a time. Use -1 for no limit.',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Binding',
|
||||||
|
name: 'binding',
|
||||||
|
placeholder: 'Add Binding',
|
||||||
|
description: 'Add binding to queu',
|
||||||
|
type: 'fixedCollection',
|
||||||
|
typeOptions: {
|
||||||
|
multipleValues: true,
|
||||||
|
},
|
||||||
|
default: {},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
name: 'bindings',
|
||||||
|
displayName: 'Binding',
|
||||||
|
values: [
|
||||||
|
{
|
||||||
|
displayName: 'Exchange',
|
||||||
|
name: 'exchange',
|
||||||
|
type: 'string',
|
||||||
|
default: '',
|
||||||
|
placeholder: 'exchange',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'RoutingKey',
|
||||||
|
name: 'routingKey',
|
||||||
|
type: 'string',
|
||||||
|
default: '',
|
||||||
|
placeholder: 'routing-key',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
...rabbitDefaultOptions,
|
...rabbitDefaultOptions,
|
||||||
].sort((a, b) => {
|
].sort((a, b) => {
|
||||||
if (
|
if (
|
||||||
|
|||||||
Reference in New Issue
Block a user