下面的函数运行正常,但我不明白为什么我的 Sonar 插件会对此行发出警告CoroutineScope(MDCContext()).launch { startPerformanceTest(request) }
。这是误报吗?我该如何消除它?
override suspend fun startPerformance(request: PerformanceStartRequest) {
if (!PerformanceTestLock.tryAcquireLock(request.taskId)) {
throw BizException.of(RunnerException.SCRIPT_EXCLUSIVE)
}
CoroutineScope(MDCContext()).launch {
// Remove this dispatcher. It is pointless when used with only suspending functions.
// kotlin:S6311
startPerformanceTest(request)
}
}
private suspend fun startPerformanceTest(request: PerformanceStartRequest) = with(request) {
try {
val result = performanceDomainService.execute(taskId, script, runners)
.apply {
instanceMetrics = metricDomainService.queryInstanceMetric(services, startTime, endTime)
}
messageDomainService.sendSuccessMessage(taskId, Phase.PERFORMANCE_TEST, result)
} catch (e: Exception) {
logger.error(e) { "Performance test failed!" }
messageDomainService.sendFailureMessage(taskId, Phase.PERFORMANCE_TEST, e.message)
} finally {
PerformanceTestLock.releaseLock(taskId)
}
}