package com.deloitte.system.job;
|
|
import com.common.core.utils.DistributedLock;
|
import com.common.redis.util.RedisUtil;
|
import com.deloitte.system.service.MailService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* 邮件同步任务
|
*/
|
@Slf4j
|
@Component
|
public class MailSyncTask {
|
@Autowired
|
private MailService mailService;
|
@Autowired
|
private DistributedLock distributedLock;
|
|
@Scheduled(cron = "1 * * * * ?")
|
public void execute() {
|
boolean isLock = false;
|
isLock = distributedLock.getLock("mailSyncLock",3600 * 1000);
|
|
if(isLock) {
|
try {
|
mailService.receiveImapMail();
|
} catch (Exception e) {
|
log.error(e.getMessage(), e);
|
}finally {
|
distributedLock.releaseLock("mailSyncLock");
|
}
|
}
|
}
|
|
}
|