Я пытаюсь выполнить метод пакетного тестирования на 100 записях и получить ошибку CPU Runtime Limit.
Я поместил метод Limits.getCpuTime () в свой код и заметил, что мой код без сегмента рабочего процесса занимает3148 мс до завершения.Однако, когда я активирую два рабочих процесса, каждый из которых отправляет электронные письма одному пользователю, я получаю ошибку ограничения времени работы процессора.В целом мой процесс без этих двух рабочих процессов занимает около 10 секунд, а при их активации - около 20 секунд.
@IsTest
static void returnIncClientAddress(){
//Select Required Records
User incidentClient = [SELECT Id FROM User WHERE Username = 'bbaggins@shire.qa.com' LIMIT 1];
BMCServiceDesk__Category__c category = [SELECT Id FROM BMCServiceDesk__Category__c WHERE Name = 'TestCategory'];
BMCServiceDesk__BMC_BaseElement__c service = [SELECT ID FROM BMCServiceDesk__BMC_BaseElement__c WHERE Name = 'TestService'];
BMCServiceDesk__BMC_BaseElement__c serviceOffering = [SELECT ID FROM BMCServiceDesk__BMC_BaseElement__c WHERE Name = 'TestServiceOffering'];
//Create Incidents
List<BMCServiceDesk__Incident__c> incidents = new List<BMCServiceDesk__Incident__c>();
for(integer i = 0; i < 100; i++){
BMCServiceDesk__Incident__c incident = new BMCServiceDesk__Incident__c(
BMCServiceDesk__FKClient__c = incidentClient.ID,
BMCServiceDesk__FKCategory__c = category.ID,
BMCServiceDesk__FKServiceOffering__c = serviceOffering.ID,
BMCServiceDesk__FKBusinessService__c = service.ID,
BMCServiceDesk__FKStatus__c = awaiting_for_handling
);
incidents.add(incident);
}
test.startTest();
insert incidents;
test.stopTest();
}
Я ожидал, что рабочие процессы электронной почты и оповещения будут обрабатываться в пакетном режиме и отправляться, не затрачивая слишком много времени на ЦП, но, похоже, Salesforce отнимает много времени как на проверку правил рабочих процессов, так и на их выполнениепри необходимости.Кажется, что большая часть времени процесса тратится на отправку электронных писем рабочих процессов (чего на самом деле нет, потому что это тестовый метод).