Add try catch around messaging monitoring cron and fix decorators (#7207)

Add try catch around messaging monitoring cron and fix
decorators:`@Process` and `@SentryCronMonitor` were inverted.
This commit is contained in:
Raphaël Bosi
2024-09-24 16:29:05 +02:00
committed by GitHub
parent 4d31995564
commit b83f0f46e5
3 changed files with 32 additions and 22 deletions

View File

@ -6,7 +6,7 @@ import { MessageQueueService } from 'src/engine/core-modules/message-queue/servi
import { import {
MESSAGING_MESSAGE_CHANNEL_SYNC_STATUS_MONITORING_CRON_PATTERN, MESSAGING_MESSAGE_CHANNEL_SYNC_STATUS_MONITORING_CRON_PATTERN,
MessagingMessageChannelSyncStatusMonitoringCronJob, MessagingMessageChannelSyncStatusMonitoringCronJob,
} from 'src/modules/messaging/monitoring/crons/jobs/messaging-message-channel-sync-status-monitoring.cron'; } from 'src/modules/messaging/monitoring/crons/jobs/messaging-message-channel-sync-status-monitoring.cron.job';
@Command({ @Command({
name: 'cron:messaging:monitoring:message-channel-sync-status', name: 'cron:messaging:monitoring:message-channel-sync-status',

View File

@ -5,6 +5,7 @@ import snakeCase from 'lodash.snakecase';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { SentryCronMonitor } from 'src/engine/core-modules/cron/sentry-cron-monitor.decorator'; import { SentryCronMonitor } from 'src/engine/core-modules/cron/sentry-cron-monitor.decorator';
import { ExceptionHandlerService } from 'src/engine/core-modules/exception-handler/exception-handler.service';
import { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator'; import { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator';
import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator'; import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator';
import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants'; import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants';
@ -30,13 +31,14 @@ export class MessagingMessageChannelSyncStatusMonitoringCronJob {
private readonly workspaceRepository: Repository<Workspace>, private readonly workspaceRepository: Repository<Workspace>,
private readonly messagingTelemetryService: MessagingTelemetryService, private readonly messagingTelemetryService: MessagingTelemetryService,
private readonly twentyORMGlobalManager: TwentyORMGlobalManager, private readonly twentyORMGlobalManager: TwentyORMGlobalManager,
private readonly exceptionHandlerService: ExceptionHandlerService,
) {} ) {}
@Process(MessagingMessageChannelSyncStatusMonitoringCronJob.name)
@SentryCronMonitor( @SentryCronMonitor(
MessagingMessageChannelSyncStatusMonitoringCronJob.name, MessagingMessageChannelSyncStatusMonitoringCronJob.name,
MESSAGING_MESSAGE_CHANNEL_SYNC_STATUS_MONITORING_CRON_PATTERN, MESSAGING_MESSAGE_CHANNEL_SYNC_STATUS_MONITORING_CRON_PATTERN,
) )
@Process(MessagingMessageChannelSyncStatusMonitoringCronJob.name)
async handle(): Promise<void> { async handle(): Promise<void> {
this.logger.log('Starting message channel sync status monitoring...'); this.logger.log('Starting message channel sync status monitoring...');
@ -54,6 +56,7 @@ export class MessagingMessageChannelSyncStatusMonitoringCronJob {
}); });
for (const activeWorkspace of activeWorkspaces) { for (const activeWorkspace of activeWorkspaces) {
try {
const messageChannelRepository = const messageChannelRepository =
await this.twentyORMGlobalManager.getRepositoryForWorkspace<MessageChannelWorkspaceEntity>( await this.twentyORMGlobalManager.getRepositoryForWorkspace<MessageChannelWorkspaceEntity>(
activeWorkspace.id, activeWorkspace.id,
@ -77,6 +80,13 @@ export class MessagingMessageChannelSyncStatusMonitoringCronJob {
message: messageChannel.syncStatus, message: messageChannel.syncStatus,
}); });
} }
} catch (error) {
this.exceptionHandlerService.captureExceptions([error], {
user: {
workspaceId: activeWorkspace.id,
},
});
}
} }
console.timeEnd('MessagingMessageChannelSyncStatusMonitoringCronJob time'); console.timeEnd('MessagingMessageChannelSyncStatusMonitoringCronJob time');

View File

@ -7,7 +7,7 @@ import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity';
import { DataSourceEntity } from 'src/engine/metadata-modules/data-source/data-source.entity'; import { DataSourceEntity } from 'src/engine/metadata-modules/data-source/data-source.entity';
import { MessagingCommonModule } from 'src/modules/messaging/common/messaging-common.module'; import { MessagingCommonModule } from 'src/modules/messaging/common/messaging-common.module';
import { MessagingMessageChannelSyncStatusMonitoringCronCommand } from 'src/modules/messaging/monitoring/crons/commands/messaging-message-channel-sync-status-monitoring.cron.command'; import { MessagingMessageChannelSyncStatusMonitoringCronCommand } from 'src/modules/messaging/monitoring/crons/commands/messaging-message-channel-sync-status-monitoring.cron.command';
import { MessagingMessageChannelSyncStatusMonitoringCronJob } from 'src/modules/messaging/monitoring/crons/jobs/messaging-message-channel-sync-status-monitoring.cron'; import { MessagingMessageChannelSyncStatusMonitoringCronJob } from 'src/modules/messaging/monitoring/crons/jobs/messaging-message-channel-sync-status-monitoring.cron.job';
import { MessagingTelemetryService } from 'src/modules/messaging/monitoring/services/messaging-telemetry.service'; import { MessagingTelemetryService } from 'src/modules/messaging/monitoring/services/messaging-telemetry.service';
@Module({ @Module({