package com.clouck.scheduler;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.clouck.model.Account;
import com.clouck.service.AccountService;
import com.clouck.service.EventService;
import com.clouck.service.ResourceService;
@Component
public class CentralScheduler {
private static final Logger log = LoggerFactory.getLogger(CentralScheduler.class);
@Autowired
private AccountService accountService;
@Autowired
private ResourceService resourceService;
@Autowired
private EventService eventService;
@Scheduled(fixedDelay = 10000)
public void scanNonDemoAccounts() {
log.debug("================scan all accounts================");
List<Account> accounts = accountService.findNonDemoAccounts();
log.debug("found {} non demo accounts", accounts.size());
for (Account account : accounts) {
resourceService.scanAccount(account);
}
log.debug("================end scan all accounts================");
}
@Scheduled(fixedDelay = 5000)
public void convertEc2Reservation2Ec2Instance() {
log.debug("================process all accounts raw resources================");
List<Account> accounts = accountService.findNonDemoAccounts();
log.debug("found {} accounts", accounts.size());
for (Account account : accounts) {
resourceService.convertEc2Reservation2Ec2Instance(account);
}
log.debug("================process all accounts raw resources================");
}
@Scheduled(fixedDelay = 5000)
public void generateEvents() {
log.debug("================generate events for all accounts================");
List<Account> accounts = accountService.findNonDemoAccounts();
log.debug("found {} accounts", accounts.size());
for (Account account : accounts) {
eventService.generateEvents(account);
}
log.debug("================end generate events for all accounts================");
}
}