Remove subscriptions job (#14250)

Remove subscriptions publish job

---------

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
This commit is contained in:
martmull
2025-09-02 14:40:30 +02:00
committed by GitHub
parent c613bdc238
commit 1801b5086a
10 changed files with 67 additions and 48 deletions
@@ -13,12 +13,14 @@ import { type ObjectRecordUpdateEvent } from 'src/engine/core-modules/event-emit
import { InjectMessageQueue } from 'src/engine/core-modules/message-queue/decorators/message-queue.decorator';
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
import { MessageQueueService } from 'src/engine/core-modules/message-queue/services/message-queue.service';
import { SubscriptionsJob } from 'src/engine/subscriptions/subscriptions.job';
import { WorkspaceEventBatch } from 'src/engine/workspace-event-emitter/types/workspace-event.type';
import { UpsertTimelineActivityFromInternalEvent } from 'src/modules/timeline/jobs/upsert-timeline-activity-from-internal-event.job';
import { CallWebhookJobsJob } from 'src/engine/core-modules/webhook/jobs/call-webhook-jobs.job';
import { type ObjectRecordEventForWebhook } from 'src/engine/core-modules/webhook/types/object-record-event-for-webhook.type';
import { CallDatabaseEventTriggerJobsJob } from 'src/engine/metadata-modules/trigger/jobs/call-database-event-trigger-jobs.job';
import { SubscriptionsService } from 'src/engine/subscriptions/subscriptions.service';
import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
@Injectable()
export class EntityEventsToDbListener {
@@ -27,10 +29,10 @@ export class EntityEventsToDbListener {
private readonly entityEventsToDbQueueService: MessageQueueService,
@InjectMessageQueue(MessageQueue.webhookQueue)
private readonly webhookQueueService: MessageQueueService,
@InjectMessageQueue(MessageQueue.subscriptionsQueue)
private readonly subscriptionsQueueService: MessageQueueService,
@InjectMessageQueue(MessageQueue.triggerQueue)
private readonly triggerQueueService: MessageQueueService,
private readonly subscriptionsService: SubscriptionsService,
private readonly featureFlagService: FeatureFlagService,
) {}
@OnDatabaseBatchEvent('*', DatabaseEventAction.CREATED)
@@ -79,17 +81,14 @@ export class EntityEventsToDbListener {
},
}));
await Promise.all([
this.subscriptionsQueueService.add<WorkspaceEventBatch<T>>(
SubscriptionsJob.name,
batchEvent,
{ retryLimit: 3 },
),
this.triggerQueueService.add<WorkspaceEventBatch<T>>(
CallDatabaseEventTriggerJobsJob.name,
batchEvent,
{ retryLimit: 3 },
),
const isDatabaseEventTriggerEnabled =
await this.featureFlagService.isFeatureEnabled(
FeatureFlagKey.IS_DATABASE_EVENT_TRIGGER_ENABLED,
batchEvent.workspaceId,
);
const promises = [
this.subscriptionsService.publish(batchEvent),
this.webhookQueueService.add<
WorkspaceEventBatch<ObjectRecordEventForWebhook>
>(
@@ -99,27 +98,41 @@ export class EntityEventsToDbListener {
retryLimit: 3,
},
),
...(auditLogsEvents.length > 0
? [
this.entityEventsToDbQueueService.add<WorkspaceEventBatch<T>>(
CreateAuditLogFromInternalEvent.name,
{
...batchEvent,
events: auditLogsEvents,
},
),
]
: []),
...(action !== DatabaseEventAction.DESTROYED && auditLogsEvents.length > 0
? [
this.entityEventsToDbQueueService.add<
WorkspaceEventBatch<ObjectRecordNonDestructiveEvent>
>(UpsertTimelineActivityFromInternalEvent.name, {
...batchEvent,
events: auditLogsEvents,
}),
]
: []),
]);
];
if (isDatabaseEventTriggerEnabled) {
promises.push(
this.triggerQueueService.add<WorkspaceEventBatch<T>>(
CallDatabaseEventTriggerJobsJob.name,
batchEvent,
{ retryLimit: 3 },
),
);
}
if (auditLogsEvents.length > 0) {
promises.push(
this.entityEventsToDbQueueService.add<WorkspaceEventBatch<T>>(
CreateAuditLogFromInternalEvent.name,
{
...batchEvent,
events: auditLogsEvents,
},
),
);
if (action !== DatabaseEventAction.DESTROYED) {
promises.push(
this.entityEventsToDbQueueService.add<
WorkspaceEventBatch<ObjectRecordNonDestructiveEvent>
>(UpsertTimelineActivityFromInternalEvent.name, {
...batchEvent,
events: auditLogsEvents,
}),
);
}
}
await Promise.all(promises);
}
}
@@ -14,6 +14,7 @@ import { RecordPositionModule } from 'src/engine/core-modules/record-position/re
import { RecordTransformerModule } from 'src/engine/core-modules/record-transformer/record-transformer.module';
import { TelemetryModule } from 'src/engine/core-modules/telemetry/telemetry.module';
import { WorkspaceDataSourceModule } from 'src/engine/workspace-datasource/workspace-datasource.module';
import { SubscriptionsModule } from 'src/engine/subscriptions/subscriptions.module';
import { EntityEventsToDbListener } from './listeners/entity-events-to-db.listener';
@@ -30,6 +31,7 @@ import { EntityEventsToDbListener } from './listeners/entity-events-to-db.listen
FeatureFlagModule,
RecordTransformerModule,
RecordPositionModule,
SubscriptionsModule,
],
providers: [
...workspaceQueryRunnerFactories,