diff --git a/packages/cli/src/scaling/__tests__/publisher.service.test.ts b/packages/cli/src/scaling/__tests__/publisher.service.test.ts index f69ad08cb5..fb0a340c11 100644 --- a/packages/cli/src/scaling/__tests__/publisher.service.test.ts +++ b/packages/cli/src/scaling/__tests__/publisher.service.test.ts @@ -65,6 +65,42 @@ describe('Publisher', () => { JSON.stringify({ ...msg, senderId: hostId, selfSend: false, debounce: true }), ); }); + + it('should not debounce `add-webhooks-triggers-and-pollers`', async () => { + const publisher = new Publisher(logger, redisClientService, instanceSettings); + const msg = mock({ command: 'add-webhooks-triggers-and-pollers' }); + + await publisher.publishCommand(msg); + + expect(client.publish).toHaveBeenCalledWith( + 'n8n.commands', + JSON.stringify({ + ...msg, + _isMockObject: true, + senderId: hostId, + selfSend: true, + debounce: false, + }), + ); + }); + + it('should not debounce `remove-triggers-and-pollers`', async () => { + const publisher = new Publisher(logger, redisClientService, instanceSettings); + const msg = mock({ command: 'remove-triggers-and-pollers' }); + + await publisher.publishCommand(msg); + + expect(client.publish).toHaveBeenCalledWith( + 'n8n.commands', + JSON.stringify({ + ...msg, + _isMockObject: true, + senderId: hostId, + selfSend: true, + debounce: false, + }), + ); + }); }); describe('publishWorkerResponse', () => { diff --git a/packages/cli/src/scaling/constants.ts b/packages/cli/src/scaling/constants.ts index e56596e4a0..336da006d8 100644 --- a/packages/cli/src/scaling/constants.ts +++ b/packages/cli/src/scaling/constants.ts @@ -1,3 +1,5 @@ +import type { PubSub } from './pubsub/pubsub.types'; + export const QUEUE_NAME = 'jobs'; export const JOB_TYPE_NAME = 'job'; @@ -11,7 +13,7 @@ export const WORKER_RESPONSE_PUBSUB_CHANNEL = 'n8n.worker-response'; /** * Commands that should be sent to the sender as well, e.g. during workflow activation and * deactivation in multi-main setup. */ -export const SELF_SEND_COMMANDS = new Set([ +export const SELF_SEND_COMMANDS = new Set([ 'add-webhooks-triggers-and-pollers', 'remove-triggers-and-pollers', ]); @@ -20,7 +22,8 @@ export const SELF_SEND_COMMANDS = new Set([ * Commands that should not be debounced when received, e.g. during webhook handling in * multi-main setup. */ -export const IMMEDIATE_COMMANDS = new Set([ +export const IMMEDIATE_COMMANDS = new Set([ 'add-webhooks-triggers-and-pollers', + 'remove-triggers-and-pollers', 'relay-execution-lifecycle-event', ]);