Commit 9b8a0abc authored by Roberto Loayza Miljanovich's avatar Roberto Loayza Miljanovich

Merge branch 'dev_marcos' into 'developer'

Update ScheduleService y application.yml

See merge request ByteBot/web/bytebot-service!26
parents f8749f30 2425b67e
...@@ -25,6 +25,7 @@ import com.bytesw.bytebot.model.enums.FrequencyType; ...@@ -25,6 +25,7 @@ import com.bytesw.bytebot.model.enums.FrequencyType;
import com.bytesw.bytebot.model.enums.ProcessETLEnum; import com.bytesw.bytebot.model.enums.ProcessETLEnum;
import com.bytesw.bytebot.repository.*; import com.bytesw.bytebot.repository.*;
import com.bytesw.bytebot.service.BusinessParameterService; import com.bytesw.bytebot.service.BusinessParameterService;
import com.bytesw.xdf.exception.NotFoundException;
import com.bytesw.xdf.multitenant.core.ThreadLocalStorage; import com.bytesw.xdf.multitenant.core.ThreadLocalStorage;
import com.google.gson.Gson; import com.google.gson.Gson;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
...@@ -83,6 +84,9 @@ public class ScheduleService implements SchedulingConfigurer { ...@@ -83,6 +84,9 @@ public class ScheduleService implements SchedulingConfigurer {
@Value("${application.byte-bot.batch.chunk:500}") @Value("${application.byte-bot.batch.chunk:500}")
private int chunk; private int chunk;
@Value("${application.scheduler.cron}")
private String cronScheduler;
@Autowired @Autowired
private JobExplorer jobExplorer; private JobExplorer jobExplorer;
...@@ -209,11 +213,31 @@ public class ScheduleService implements SchedulingConfigurer { ...@@ -209,11 +213,31 @@ public class ScheduleService implements SchedulingConfigurer {
/* Busca las listas de SchedulerTask */ /* Busca las listas de SchedulerTask */
List<SchedulerTask> listSchedulerTask = schedulerTaskRepository.findByEtlId(processDelete.getId()); List<SchedulerTask> listSchedulerTask = schedulerTaskRepository.findByEtlId(processDelete.getId());
for (SchedulerTask schedulerTask : listSchedulerTask) { if (!listSchedulerTask.isEmpty()) {
Trigger triggerDelete = new CronTrigger(schedulerTask.getCronExpression(), timeZone); for (SchedulerTask schedulerTask : listSchedulerTask) {
String keyScheduler = String.format("%s-%s-%s", tenantIdentifier, schedulerTask.getCalendarID().trim(), schedulerTask.getId()); Trigger triggerDelete = new CronTrigger(schedulerTask.getCronExpression(), timeZone);
String keyScheduler = String.format("%s-%s-%s", tenantIdentifier, schedulerTask.getCalendarID().trim(), schedulerTask.getId());
futureMap.put(keyScheduler, taskRegistrar.getScheduler()
.schedule(() -> processDeleteData(tenantIdentifier, taskRegistrar, schedulerTask), triggerDelete));
}
} else {
String keyScheduler = "refresh-schdeduler-task";
Trigger triggerDelete = new CronTrigger(cronScheduler, timeZone);
futureMap.put(keyScheduler, taskRegistrar.getScheduler() futureMap.put(keyScheduler, taskRegistrar.getScheduler()
.schedule(() -> processDeleteData(tenantIdentifier, taskRegistrar, schedulerTask.getCalendarID().trim()), triggerDelete)); .schedule(() -> syncSchedulerTask(), triggerDelete));
}
}
private void syncSchedulerTask() {
List<SchedulerTask> schedulerTasks = (List) schedulerTaskRepository.findAll();
for (SchedulerTask model: schedulerTasks) {
String key = String.format("%s-%s-%s", tenant, model.getCalendarID().trim(), model.getId());
if (!futureMap.containsKey(key)) {
Trigger trigger = new CronTrigger(model.getCronExpression(), timeZone);
futureMap.put(key, taskRegister.getScheduler()
.schedule(() -> processDeleteData(tenant, taskRegister, model), trigger));
}
} }
} }
...@@ -224,7 +248,7 @@ public class ScheduleService implements SchedulingConfigurer { ...@@ -224,7 +248,7 @@ public class ScheduleService implements SchedulingConfigurer {
cancelTask(model); cancelTask(model);
} }
futureMap.put(key, taskRegister.getScheduler() futureMap.put(key, taskRegister.getScheduler()
.schedule(() -> processDeleteData(tenant, taskRegister, model.getCalendarID().trim()), trigger)); .schedule(() -> processDeleteData(tenant, taskRegister, model), trigger));
} }
public void cancelTaskDelete(Long id) { public void cancelTaskDelete(Long id) {
...@@ -258,13 +282,24 @@ public class ScheduleService implements SchedulingConfigurer { ...@@ -258,13 +282,24 @@ public class ScheduleService implements SchedulingConfigurer {
} }
/*ETL eliminacion de data sensible*/ /*ETL eliminacion de data sensible*/
public void processDeleteData(String tenantIdentifier, ScheduledTaskRegistrar taskRegistrar, String calendarId) { public void processDeleteData(String tenantIdentifier, ScheduledTaskRegistrar taskRegistrar, SchedulerTask schedulerTask) {
String zone = businessParameterService.getBusinessParameterForKey(parameter); String zone = businessParameterService.getBusinessParameterForKey(parameter);
if (zone != null) { if (zone != null) {
timeZone = TimeZone.getTimeZone(zone); timeZone = TimeZone.getTimeZone(zone);
} else { } else {
timeZone = TimeZone.getTimeZone(zoneDefault); timeZone = TimeZone.getTimeZone(zoneDefault);
} }
Optional<SchedulerTask> schedulerTaskActual = schedulerTaskRepository.findById(schedulerTask.getId());
if (schedulerTaskActual.isPresent()) {
schedulerTask = schedulerTaskActual.get();
} else {
log.info(String.format("No se encuentra la tarea de %s regristrado.", schedulerTask.getDescription()));
cancelTask(schedulerTask);
return;
}
String calendarId = schedulerTask.getCalendarID().trim();
Optional<List<WeekScheduler>> dates = weekSchedulerRepository.findByCalendarId(calendarId); Optional<List<WeekScheduler>> dates = weekSchedulerRepository.findByCalendarId(calendarId);
OffsetTime actual = OffsetTime.now(); OffsetTime actual = OffsetTime.now();
OffsetDateTime now = OffsetDateTime.now(); OffsetDateTime now = OffsetDateTime.now();
...@@ -300,6 +335,12 @@ public class ScheduleService implements SchedulingConfigurer { ...@@ -300,6 +335,12 @@ public class ScheduleService implements SchedulingConfigurer {
.schedule(() -> scheduleCron(createJobDataSens(data), tenantIdentifier), trigger)); .schedule(() -> scheduleCron(createJobDataSens(data), tenantIdentifier), trigger));
} }
} }
deleteDataSensBeans = deleteDataSensJDBCRepository.getListAgentChannel(AgentStatusEnum.DELETED.getName(), AgentParameterEnum.ACCESS_TWILIO.getName());
if (!deleteDataSensBeans.isEmpty()) {
for (DeleteDataSensBean data : deleteDataSensBeans) {
cancelTaskDelete(data.getAgenId());
}
}
} else { } else {
keys.forEach(x -> { keys.forEach(x -> {
if (futureMap.containsKey(x)) { if (futureMap.containsKey(x)) {
...@@ -399,6 +440,9 @@ public class ScheduleService implements SchedulingConfigurer { ...@@ -399,6 +440,9 @@ public class ScheduleService implements SchedulingConfigurer {
data = deleteDataSensJDBCRepository.getAgentChannelByAgentID(AgentStatusEnum.DEPLOYED.getName(), data = deleteDataSensJDBCRepository.getAgentChannelByAgentID(AgentStatusEnum.DEPLOYED.getName(),
AgentParameterEnum.ACCESS_TWILIO.getName(), data.getAgenId()); AgentParameterEnum.ACCESS_TWILIO.getName(), data.getAgenId());
ThreadLocalStorage.setTenantName(tenant); ThreadLocalStorage.setTenantName(tenant);
if (data == null) {
return null;
}
return jobBuilderFactory.get( String.format("processDataSensible-%d",data.getAgenId())) return jobBuilderFactory.get( String.format("processDataSensible-%d",data.getAgenId()))
.incrementer(new RunIdIncrementer()).listener(listener) .incrementer(new RunIdIncrementer()).listener(listener)
.flow(createStepDataSens(tenant, data)).end().build(); .flow(createStepDataSens(tenant, data)).end().build();
......
...@@ -5,7 +5,7 @@ server: ...@@ -5,7 +5,7 @@ server:
port: ${APPLICATION_PORT:9077} port: ${APPLICATION_PORT:9077}
web: web:
#static-content-location: file:/home/mgutierrez/Documentos/Bytesw/bytebot-workspace/dist/bytebot-html/ #static-content-location: file:/home/mgutierrez/Documentos/Bytesw/bytebot-workspace/dist/bytebot-html/
static-content-location: file:/home/mgutierrez/Descargas/dist/bytebot-html/ static-content-location: file:/home/mgutierrez/Descargas/dist-2022-2/dist/bytebot-html/
security: security:
...@@ -30,7 +30,7 @@ application: ...@@ -30,7 +30,7 @@ application:
cron: 0 0/1 * * * * cron: 0 0/1 * * * *
show-side-bar: false show-side-bar: false
test: ENC(OEchnTXpIZnCVdPNthgCZBfQjMt1AUS1) test: ENC(OEchnTXpIZnCVdPNthgCZBfQjMt1AUS1)
name: xdf-example name: AVB-HDI
license: license:
applicationId: test applicationId: test
clientId: test clientId: test
...@@ -106,13 +106,15 @@ application: ...@@ -106,13 +106,15 @@ application:
version: "1.0" version: "1.0"
knowledge: knowledge:
url: "http://127.0.0.1:3000/byteknowledgebaseApi" url: "http://127.0.0.1:3000/byteknowledgebaseApi"
scheduler:
cron: 0 0/1 * * * *
spring: spring:
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
mbeans.exclude: dataSource mbeans.exclude: dataSource
application: application:
name: xdf-example name: AVB-HDI
datasource: datasource:
database-type: postgres database-type: postgres
...@@ -201,7 +203,7 @@ logging.level.org.springframework: ERROR ...@@ -201,7 +203,7 @@ logging.level.org.springframework: ERROR
logging.level.org.apache.catalina.core: ERROR logging.level.org.apache.catalina.core: ERROR
logging.level.org.apache: ERROR logging.level.org.apache: ERROR
logging.level.org.quartz: ERROR logging.level.org.quartz: ERROR
logging.level.com.bytesw-bfm.xdf.example.security: DEBUG logging.level.com.bytesw-bfm.xdf.example.security: ERROR
logging.level.net.javacrumbs.shedlock: ERROR logging.level.net.javacrumbs.shedlock: ERROR
logging.level.com.github.alturkovic.lock: ERROR logging.level.com.github.alturkovic.lock: ERROR
logging.level.com.ulisesbocchio.jasyptspringboot: ERROR logging.level.com.ulisesbocchio.jasyptspringboot: ERROR
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment