fix(core): Ensure only leader handles waiting executions (#9014)
This commit is contained in:
@@ -39,6 +39,9 @@ export class OrchestrationService {
|
||||
return config.getEnv('redis.queueModeId');
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether this instance is the leader in a multi-main setup. Always `true` in single-main setup.
|
||||
*/
|
||||
get isLeader() {
|
||||
return config.getEnv('multiMainSetup.instanceType') === 'leader';
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ export class MultiMainSetup extends EventEmitter {
|
||||
if (config.getEnv('multiMainSetup.instanceType') === 'leader') {
|
||||
config.set('multiMainSetup.instanceType', 'follower');
|
||||
|
||||
this.emit('leader-stepdown'); // lost leadership - stop triggers, pollers, pruning
|
||||
this.emit('leader-stepdown'); // lost leadership - stop triggers, pollers, pruning, wait-tracking
|
||||
|
||||
EventReporter.info('[Multi-main setup] Leader failed to renew leader key');
|
||||
}
|
||||
@@ -97,7 +97,7 @@ export class MultiMainSetup extends EventEmitter {
|
||||
|
||||
await this.redisPublisher.setExpiration(this.leaderKey, this.leaderKeyTtl);
|
||||
|
||||
this.emit('leader-takeover'); // gained leadership - start triggers, pollers, pruning
|
||||
this.emit('leader-takeover'); // gained leadership - start triggers, pollers, pruning, wait-tracking
|
||||
} else {
|
||||
config.set('multiMainSetup.instanceType', 'follower');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user