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"); } } } }