OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-27 567e3003494f2a1ea56591299fc46575b7cb3965
src/main/java/kr/wisestone/owl/scheduler/Scheduler.java
@@ -6,6 +6,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -15,7 +16,7 @@
@Component
public class Scheduler {
    /*private static final Logger log = LoggerFactory.getLogger(Scheduler.class);
    private static final Logger log = LoggerFactory.getLogger(Scheduler.class);
    @Autowired
    private PaymentService paymentService;
@@ -38,9 +39,15 @@
    @Autowired
    private WebSocketService webSocketService;
    @Value("${use.scheduler}")
    private boolean bUseScheduler;
    //  OWL ITS 관련자들에게 회원 가입 정보를 전달한다.
    @Scheduled(cron = "0 0 17 * * *")
    public void sendOwlManager() {
        if (!bUseScheduler) {
            return;
        }
        //  OWL ITS 관련자들에게 회원 가입 정보를 전달한다.
        this.userService.sendUserJoinStatisticsEmail();
@@ -48,25 +55,28 @@
        this.userService.sendTotalStatisticsEmail();
    }
    @Scheduled(cron = "0 50 23 * * *")    //  매 시간 (초, 분, 시, 일, 월, 년)
    /*@Scheduled(cron = "0 50 23 * * *")    //  매 시간 (초, 분, 시, 일, 월, 년)
    public void updateExchangeRatePayment() {
        //  변경된 환율 정보를 결제 금액에 업데이트한다.
        this.paymentService.updateExchangeRatePayment();
    }
    }*/
    //   자동 결재 - 어제가 만료일인 업무 공간을 찾아서 결제한다. 새벽 1시에 실행
    @Scheduled(cron = "0 0 01 * * *")    //  매 시간 (초, 분, 시, 일, 월, 년)
    /*@Scheduled(cron = "0 0 01 * * *")    //  매 시간 (초, 분, 시, 일, 월, 년)
    public void subscribePayment() {
        List<Workspace> workspaces = this.workspaceService.findSubscribeImmediateExpireDate();
        for (Workspace workspace : workspaces) {
            this.paymentService.subscribeImmediate(workspace);
        }
    }
    }*/
    //  이슈와 연결되지 않은 첨부파일 삭제 - 이슈 생성, 수정에서 에디트 창에 첨부했다가 저장하지 않은 파일들... 새벽 1시 30분에 실행
    @Scheduled(cron = "0 30 01 * * *")
    public void deleteAttachedFileNotIdAndReservationIssue() {
        if (!bUseScheduler) {
            return;
        }
        //  이슈와 연결되지 않은 첨부파일 삭제
        this.attachedFileService.deleteAttachedFileNotId();
        //  이슈 예약 발생한 항목을 찾아 이슈를 다시 생성 상태로 변경한다.
@@ -74,23 +84,36 @@
    }
    //  업무 공간 자동 초기화 - 어제가 만료일인 업무 공간을 찾아서 업무 공간 사용자, 사용 용량을 초기화한다. 새벽 2시에 실행
    @Scheduled(cron = "0 0 02 * * *")
    /*@Scheduled(cron = "0 0 02 * * *")
    public void expireWorkspace() {
        //  사용 기간이 만료된 업무 공간을 찾아 용량, 최대 사용자, 서비스 유형을 변경한다.
        this.workspaceService.expireWorkspace();
        //  업무 공간 만료 예정 안내
        this.workspaceService.expireAlarmWorkspace();
    }
    }*/
    //  이메일 예약 발송 - 사용자가 설정한 알림 시간에 시스템에서 일어난 이벤트를 이메일로 발송한다. - 매시간 30분에 실행
    @Scheduled(cron = "0 0/30 * * * *")
    public void smartEmailSystem() {
        if (!bUseScheduler) {
            return;
        }
        //  예약된 이메일 발송
        this.systemEmailService.reservationSendEmail();
    }
    //  이메일 실시간 발송 - 1분마다 실행
    @Scheduled(cron = "0 * * * * *")
    public void realTimeEmailSystem() {
        if (!bUseScheduler) {
            return;
        }
        //  실시간 이메일 발송
        this.systemEmailService.realTimeSendEmail();
    }
    //  15초 마다 접속자 확인
    @Scheduled(fixedDelay = 15000)
    /*@Scheduled(fixedDelay = 15000)
    public void pingUsers() {
        //  접속 사용자를 확인한다.
        this.webSocketService.checkActiveUser();