540 lines
18 KiB
Java
540 lines
18 KiB
Java
package itn.let.schdlr.service;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.sql.DataSource;
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Profile;
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import com.ibm.icu.util.Calendar;
|
|
import com.ibm.icu.util.GregorianCalendar;
|
|
|
|
import egovframework.rte.fdl.property.EgovPropertyService;
|
|
import itn.com.uss.olh.hpc.service.HackIpService;
|
|
import itn.com.utl.fcc.service.EgovDateUtil;
|
|
import itn.let.fax.admin.service.FaxAdmService;
|
|
import itn.let.fax.admin.service.FaxStatVO;
|
|
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoAtStatVO;
|
|
import itn.let.kakao.admin.statistics.service.KakaoStatisticsService;
|
|
import itn.let.lett.service.LetterService;
|
|
import itn.let.mail.service.MailTemplateService;
|
|
import itn.let.mjo.msg.service.MjonMsgService;
|
|
import itn.let.mjo.msg.service.MjonMsgStatVO;
|
|
import itn.let.mjo.msg.service.MjonMsgVO;
|
|
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
|
|
import itn.let.sts.com.StatsVO;
|
|
import itn.let.sts.cst.service.EgovConectStatsService;
|
|
import itn.let.uss.umt.service.EgovUserManageService;
|
|
import itn.let.utl.user.service.MjonNoticeSendUtil;
|
|
import net.javacrumbs.shedlock.core.LockProvider;
|
|
import net.javacrumbs.shedlock.core.SchedulerLock;
|
|
import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;
|
|
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
|
|
|
|
@Profile({"!local"})
|
|
@Service("SchedulerUtil")
|
|
@EnableScheduling
|
|
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S") // Scheduler Lock 사용 가능 설정 (기본 30초동안 Lock)
|
|
public class SchedulerUtil {
|
|
|
|
@Resource(name = "SchdlrManageService")
|
|
private SchdlrManageService schdlrManageService;
|
|
|
|
@Resource (name = "MailTemplateService")
|
|
private MailTemplateService mailTemplateService;
|
|
|
|
@Resource (name = "userManageService")
|
|
private EgovUserManageService egovUserManageService;
|
|
|
|
@Resource(name = "hackIpService")
|
|
private HackIpService hackIpService;
|
|
|
|
@Resource(name = "mjonMsgService")
|
|
private MjonMsgService mjonMsgService;
|
|
|
|
@Resource(name = "KakaoStatisticsService")
|
|
private KakaoStatisticsService kakaoStatisticsService;
|
|
|
|
@Resource(name = "propertiesService")
|
|
protected EgovPropertyService propertyService;
|
|
|
|
@Resource(name = "conectStatsService")
|
|
private EgovConectStatsService conectStatsService;
|
|
|
|
/** 알림전송 Util */
|
|
@Resource(name = "mjonNoticeSendUtil")
|
|
private MjonNoticeSendUtil mjonNoticeSendUtil;
|
|
|
|
@Resource(name = "faxAdmService")
|
|
private FaxAdmService faxAdmService;
|
|
|
|
@Resource(name = "LetterService")
|
|
private LetterService letterService;
|
|
|
|
@Resource(name="MjonMsgDataDAO")
|
|
private MjonMsgDataDAO mjonMsgDataDAO;
|
|
|
|
/** 설정값 가져오기 */
|
|
@Value("#{globalSettings['Globals.Env']}")
|
|
private String GlobalsEnv;
|
|
|
|
private static final String ONE_MIN = "PT1M"; // 1분동안 LOCK
|
|
|
|
/*
|
|
* 10분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
|
* */
|
|
// Schdule Lock (10분동안)
|
|
@Scheduled(cron = "0 0/10 * * * ?")
|
|
@SchedulerLock(name = "runScenarioOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runScenarioOneTime() throws Exception {
|
|
|
|
// do something...
|
|
try {
|
|
System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>");
|
|
System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>");
|
|
System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>");
|
|
System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>");
|
|
System.out.println("=============SchedulerUtil=====runScenarioOneTime =============>");
|
|
|
|
//문자 환불, 팩스 환불
|
|
|
|
|
|
PayBack("");
|
|
|
|
/*
|
|
// 문자 환불
|
|
schdlrManageService.msgFailPayBack();
|
|
* */
|
|
|
|
|
|
// do something...
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 매일 5시20분 20초에 31일전 데이터에서 환불 대상을 찾아서 환불 한다.
|
|
* */
|
|
@Scheduled(cron = "20 25 5 * * ?")
|
|
@SchedulerLock(name = "runScenarioOneTimeOneByDay", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runScenarioOneTimeOneByDay() throws Exception {
|
|
|
|
// do something...
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====runScenarioOneTimeOneByDay =============>");
|
|
//문자 환불, 팩스 환불
|
|
PayBack("ONE");
|
|
|
|
/*
|
|
// 문자 환불
|
|
schdlrManageService.msgFailPayBack();
|
|
* */
|
|
|
|
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// Schdule Lock (2분동안)
|
|
//세틀뱅크 자동 충전 배치
|
|
@Scheduled(cron = "0 0/2 * * * ?")
|
|
@SchedulerLock(name = "runVacsChargeOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runVacsChargeOneTime() throws Exception {
|
|
|
|
System.out.println("=============EgovSysLogScheduling=====runVacsChargeOneTime =============>");
|
|
// do something...
|
|
try {
|
|
|
|
schdlrManageService.vacsAutoCharge();
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 매일 오전 4시마다 실행 ex) 04:00
|
|
// 휴면회원으로 지정
|
|
@Scheduled(cron = "0 0 4 * * *")
|
|
@SchedulerLock(name = "runMemberDormantUpdate", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runMemberDormantUpdate() throws Exception {
|
|
|
|
System.out.println("=============EgovSysLogScheduling=====runMemberDormantUpdate =============>");
|
|
try {
|
|
|
|
mailTemplateService.setMemberDormantUpdate();
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 매일 오전 8시마다 실행 ex) 08:00
|
|
// 휴면회원 메일발송
|
|
@Scheduled(cron = "0 0 8 * * *")
|
|
@SchedulerLock(name = "runMailSendMemberDormant", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runMailSendMemberDormant() throws Exception {
|
|
|
|
System.out.println("=============EgovSysLogScheduling=====runMailSendMemberDormant =============>");
|
|
try {
|
|
|
|
mailTemplateService.mailSendMemberDormant();
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 매일 오전 10시마다 실행 ex) 10:00
|
|
// 휴면회원 SMS발송
|
|
@Scheduled(cron = "0 0 10 * * *")
|
|
@SchedulerLock(name = "runSmsSendMemberDormant", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runSmsSendMemberDormant() throws Exception {
|
|
|
|
System.out.println("=============EgovSysLogScheduling=====runSmsSendMemberDormant =============>");
|
|
try {
|
|
|
|
mailTemplateService.smsSendMemberDormant();
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 매일 오전 5시마다 실행 ex) 05:00
|
|
// 문자 우선순위 랜덤 업데이트 All
|
|
@Scheduled(cron = "0 0 5 * * *")
|
|
@SchedulerLock(name = "runLetterPriorityUpdateAll", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runLetterPriorityUpdateAll() throws Exception {
|
|
|
|
System.out.println("=============EgovSysLogScheduling=====runLetterPriorityUpdateAll =============>");
|
|
try {
|
|
|
|
letterService.updateLetterPriorityAll();
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 매달 1일 0시 10분 실행
|
|
// "0 10 0 1 * *"
|
|
// 매달 3일 6시 40분 실행
|
|
// "0 40 18 3 * *"
|
|
// 매일 오전 1시 1분 0초
|
|
// "0 1 1 * * *"
|
|
// @Scheduled(cron = "0 * * * * *") // 1분마다 실행(TEST)
|
|
@Scheduled(cron = "0 1 0 1 * *") // 매달 1일 0시 1분 실행
|
|
@SchedulerLock(name = "runUserCashByAutoCashUpdate", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runUserCashByAutoCashUpdate() throws Exception {
|
|
//System.out.println("AutoCash Start");
|
|
|
|
// 후불제회원 Cash충전
|
|
//egovUserManageService.updateUserCashByAutoCash();
|
|
|
|
//System.out.println("AutoCash End");
|
|
|
|
try {
|
|
|
|
System.out.println("AutoCash Start");
|
|
|
|
// 후불제회원 Cash충전
|
|
egovUserManageService.updateUserCashByAutoCash();
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
|
|
// 트래픽 감시 스케줄러
|
|
// 3분마다 실행
|
|
@Scheduled(cron = "0 0/3 * * * ?")
|
|
@SchedulerLock(name = "highTrafficIgnoreIpInsert", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void highTrafficIgnoreIpInsert() throws Exception {
|
|
|
|
//5분 내 300회 이상 접속로그가 있는 경우 차단아이피 등록
|
|
//hackIpService.selectHighTrafficNotIgnoreIp();
|
|
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====highTrafficIgnoreIpInsert =============>");
|
|
|
|
|
|
//5분 내 300회 이상 접속로그가 있는 경우 차단아이피 등록
|
|
hackIpService.selectHighTrafficNotIgnoreIp();
|
|
|
|
|
|
// do something...
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
// AGENT별 SMS LMS MMS 발송건수 , 카카오 알림톡 발송건수 통계 스케쥴러
|
|
@Scheduled(cron = "0 10 1 * * *") // 매일 새벽1시 10분 실행
|
|
@SchedulerLock(name = "insertAgentSmsCountStat", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void agentSmsCountStatInsert() throws Exception {
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====insertAgentSmsCountStat scheduler RUN (YESTERDAY) =============>");
|
|
int minusDate =EgovDateUtil.dayMinusToInt("yyyyMMdd", 1);
|
|
int minusSevenDays =EgovDateUtil.dayMinusToInt("yyyyMMdd", 7);
|
|
|
|
// 전일 문자발송 건 통계 insert
|
|
MjonMsgStatVO mjonMsgStatVO = new MjonMsgStatVO();
|
|
mjonMsgStatVO.setStatStartDate(minusSevenDays);
|
|
mjonMsgStatVO.setStatEndDate(minusDate);
|
|
mjonMsgService.insertAgentSmsCountStat(mjonMsgStatVO);
|
|
|
|
// 전일 알림톡발송 건 통계 insert
|
|
MjonKakaoAtStatVO kakaoAtStatVO = new MjonKakaoAtStatVO();
|
|
kakaoAtStatVO.setStatStartDate(minusSevenDays);
|
|
kakaoAtStatVO.setStatEndDate(minusDate);
|
|
kakaoStatisticsService.insertKakaoAtCountStat(kakaoAtStatVO);
|
|
|
|
// 전일 알림톡발송 건 통계 insert
|
|
FaxStatVO faxStatVO = new FaxStatVO();
|
|
faxStatVO.setStatStartDate(minusSevenDays);
|
|
faxStatVO.setStatEndDate(minusDate);
|
|
faxAdmService.insertFaxCountStat(faxStatVO);
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// AGENT별 SMS 발송건수 통계 스케쥴러
|
|
@Scheduled(cron = "0 5,35 * * * *") // 5,35분마다 실행
|
|
@SchedulerLock(name = "insertAgentSmsCountStatByMinute", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void agentSmsCountStatByMinuteInsert() throws Exception {
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====insertAgentSmsCountStatByMinute =============>");
|
|
|
|
int nowDate =EgovDateUtil.nowDateToInt("yyyyMMdd");
|
|
|
|
// 당일 문자발송 건 통계 insert
|
|
MjonMsgStatVO mjonMsgStatVO = new MjonMsgStatVO();
|
|
mjonMsgStatVO.setStatStartDate(nowDate);
|
|
mjonMsgStatVO.setStatEndDate(nowDate);
|
|
mjonMsgService.insertAgentSmsCountStat(mjonMsgStatVO);
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// AGENT별 Kakao 발송건수 통계 스케쥴러
|
|
//@Scheduled(cron = "0 10,40 * * * *") // 10,40분마다 실행
|
|
//@Scheduled(cron = "0 47 * * * *") // 47분마다 실행
|
|
@Scheduled(cron = "0 57 23 * * *")
|
|
@SchedulerLock(name = "insertAgentKakaoCountStatByMinute", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void agentKakaoCountStatByMinuteInsert() throws Exception {
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====insertAgentKakaoCountStatByMinute =============>");
|
|
|
|
int nowDate =EgovDateUtil.nowDateToInt("yyyyMMdd");
|
|
|
|
// 당일 알림톡발송 건 통계 insert
|
|
MjonKakaoAtStatVO kakaoAtStatVO = new MjonKakaoAtStatVO();
|
|
kakaoAtStatVO.setStatStartDate(nowDate);
|
|
kakaoAtStatVO.setStatEndDate(nowDate);
|
|
kakaoStatisticsService.insertKakaoAtCountStat(kakaoAtStatVO);
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// AGENT별 Fax 발송건수 통계 스케쥴러
|
|
@Scheduled(cron = "0 15,45 * * * *") // 15,45분마다 실행
|
|
@SchedulerLock(name = "insertAgentFaxCountStatByMinute", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void agentFaxCountStatByMinuteInsert() throws Exception {
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====insertAgentFaxCountStatByMinute =============>");
|
|
|
|
int nowDate =EgovDateUtil.nowDateToInt("yyyyMMdd");
|
|
|
|
// 전일 카톡발송 건 통계 insert
|
|
FaxStatVO faxStatVO = new FaxStatVO();
|
|
faxStatVO.setStatStartDate(nowDate);
|
|
faxStatVO.setStatEndDate(nowDate);
|
|
faxAdmService.insertFaxCountStat(faxStatVO);
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 대시보드 어제/오늘 접속현황 & 접속통계
|
|
@Scheduled(cron = "0 1 0 * * *") // 매일 새벽0시 1분 실행
|
|
@SchedulerLock(name = "insertDashBoardStat", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void dashBoardStatInsert() throws Exception {
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====dashBoardStatInsert =============>");
|
|
// 어제날짜
|
|
Calendar calendar = new GregorianCalendar();
|
|
SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
String yesterdayDate = SDF.format(calendar.getTime());
|
|
calendar.add(Calendar.DATE, -1);
|
|
yesterdayDate = SDF.format(calendar.getTime());
|
|
|
|
StatsVO yesterdayStatsVO = new StatsVO();
|
|
yesterdayStatsVO.setStatDate(yesterdayDate);
|
|
|
|
// 대시보드 인서트 Logic
|
|
conectStatsService.insertDashBoardStatLogic(yesterdayStatsVO);
|
|
|
|
// 대시보드 업데이트 Logic
|
|
conectStatsService.updateDashBoardStatLogic(yesterdayStatsVO);
|
|
|
|
|
|
// 오늘날짜
|
|
Date nowDate = new Date();
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
String strNowDate = simpleDateFormat.format(nowDate);
|
|
|
|
StatsVO statsVO = new StatsVO();
|
|
statsVO.setStatDate(strNowDate);
|
|
|
|
// 대시보드 인서트 Logic
|
|
conectStatsService.insertDashBoardStatLogic(statsVO);
|
|
|
|
// 대시보드 업데이트 Logic
|
|
conectStatsService.updateDashBoardStatLogic(statsVO);
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 대시보드 어제/오늘 접속현황 & 접속통계
|
|
@Scheduled(cron = "0 20,50 * * * *") // 20,50분마다 실행
|
|
@SchedulerLock(name = "updateDashBoardStat", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void dashBoardStatUpdate() throws Exception {
|
|
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====DashBoardStatUpdate =============>");
|
|
// 오늘날짜
|
|
Date nowDate = new Date();
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
String strNowDate = simpleDateFormat.format(nowDate);
|
|
|
|
StatsVO statsVO = new StatsVO();
|
|
statsVO.setStatDate(strNowDate);
|
|
|
|
// 대시보드 인서트 Logic
|
|
conectStatsService.insertDashBoardStatLogic(statsVO);
|
|
|
|
// 대시보드 업데이트 Logic
|
|
conectStatsService.updateDashBoardStatLogic(statsVO);
|
|
|
|
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 이용약관 메일발송
|
|
@Scheduled(cron = "0 */15 * * * *") // 15분마다 실행
|
|
@SchedulerLock(name = "sendTermsEmail", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void TermsEmailSend() throws Exception {
|
|
|
|
try {
|
|
System.out.println("=============EgovSysLogScheduling=====TermsEmailSend =============>");
|
|
|
|
// 이용약관 회원 전체발송
|
|
mjonNoticeSendUtil.userAllTermsEmailSend();
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@Bean
|
|
public LockProvider lockProvider(DataSource dataSource) {
|
|
return new JdbcTemplateLockProvider(dataSource);
|
|
}
|
|
|
|
@Scheduled(cron = "0 0/3 * * * ?") // 3분마다 실행
|
|
@SchedulerLock(name = "runKakaoOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runKakaoOneTime() throws Exception {
|
|
|
|
// do something...
|
|
try {
|
|
System.out.println("=============SchedulerUtil=====runKakaoOneTime =============>");
|
|
schdlrManageService.kakaoFailPayBack();
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
//대체문자 결과 반영
|
|
@Scheduled(cron = "0 0/2 * * * ?") // 2분마다 실행
|
|
@SchedulerLock(name = "updateKakaoResendResult", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
|
|
public void runUpdateKakaoResendResult() throws Exception {
|
|
|
|
try {
|
|
System.out.println("=============SchedulerUtil=====runKakaoResendUpdate =============>");
|
|
schdlrManageService.updateKakaoResendResult();
|
|
}catch(Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//환불 실행
|
|
private void PayBack(String p_type) throws Exception {
|
|
|
|
|
|
// 문자 환불
|
|
schdlrManageService.payBack_advc(p_type);
|
|
|
|
/*
|
|
if ("ONE".equals(p_type)) { //하루에 한번만 31일 대상으로 실행
|
|
schdlrManageService.msgFailPayBackOneByDay();
|
|
}else {
|
|
// 10분 마다 1주일 데이터에서 환불 대상을 찾아서 환불 한다.
|
|
//어플리케이션 트랜잭션 문제가 있어 Util 단으로 DB 호출을 가져옴 - 2024-03-14
|
|
//schdlrManageService.msgFailPayBack();
|
|
|
|
List<MjonMsgVO> msgFailList = mjonMsgDataDAO.selectMsgSentFailList();
|
|
|
|
long forBeforeTime = System.currentTimeMillis(); // 코드 실행 전 시간
|
|
System.out.println("== msgFailList =============> : "+ msgFailList.size());
|
|
for(MjonMsgVO vo : msgFailList) {
|
|
|
|
try {
|
|
mjonMsgDataDAO.updateMsgSentFailPayBack(vo);
|
|
}catch(Exception ex) {
|
|
System.out.println("=============SchedulerUtil=====PayBack Catch =============>");
|
|
System.out.println(vo.getUserId()+" : "+ vo.getMsgGroupId() +" : "+ vo.getUserData());
|
|
ex.printStackTrace();
|
|
}
|
|
|
|
}
|
|
long forAfterTime = System.currentTimeMillis(); // 코드 실행 후 시간
|
|
long forSecDiffTime = (forAfterTime - forBeforeTime)/1000; // 코드 실행 전후 시간 차이 계산(초 단위)
|
|
System.out.println("==PayBack for 2 =============> 수량 : "+msgFailList.size()+" ===== " + forSecDiffTime +"초");
|
|
}
|
|
|
|
*/
|
|
System.out.println("==== faxFailPayBack ====");
|
|
// 팩스 환불
|
|
schdlrManageService.faxFailPayBack();
|
|
|
|
}
|
|
}
|