Remove subscriptions job (#14250)
Remove subscriptions publish job --------- Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
This commit is contained in:
+49
-36
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user