Skip to content

Commit 41c551d

Browse files
committed
Added messageReplaced to concurrency tracking (when freezing)
1 parent 6b0c37a commit 41c551d

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

apps/webapp/app/v3/marqs/index.server.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,8 @@ export class MarQS {
507507
});
508508

509509
await this.#callEnqueueMessage(newMessage);
510+
511+
await this.options.subscriber?.messageReplaced(newMessage);
510512
},
511513
{
512514
kind: SpanKind.CONSUMER,

apps/webapp/app/v3/marqs/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ export interface MessageQueueSubscriber {
9797
messageDequeued(message: MessagePayload): Promise<void>;
9898
messageAcked(message: MessagePayload): Promise<void>;
9999
messageNacked(message: MessagePayload): Promise<void>;
100+
messageReplaced(message: MessagePayload): Promise<void>;
100101
}
101102

102103
export interface VisibilityTimeoutStrategy {

apps/webapp/app/v3/services/taskRunConcurrencyTracker.server.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,30 @@ class TaskRunConcurrencyTracker implements MessageQueueSubscriber {
9797
});
9898
}
9999

100+
async messageReplaced(message: MessagePayload): Promise<void> {
101+
logger.debug("TaskRunConcurrencyTracker.messageReplaced()", {
102+
data: message.data,
103+
messageId: message.messageId,
104+
});
105+
106+
const data = this.getMessageData(message);
107+
if (!data) {
108+
logger.info(
109+
`TaskRunConcurrencyTracker.messageReplaced(): could not parse message data`,
110+
message
111+
);
112+
return;
113+
}
114+
115+
await this.executionFinished({
116+
projectId: data.projectId,
117+
taskId: data.taskIdentifier,
118+
runId: message.messageId,
119+
environmentId: data.environmentId,
120+
deployed: data.environmentType !== "DEVELOPMENT",
121+
});
122+
}
123+
100124
private getMessageData(message: MessagePayload) {
101125
const result = ConcurrentMessageData.safeParse(message.data);
102126
if (result.success) {

0 commit comments

Comments
 (0)