zoukankan      html  css  js  c++  java
  • 定时发送邮件(利用quart)

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目

    思路:1.依赖 2.任务 3.配置文件 4.测试

    1.依赖

    	<dependency>
    			<groupId>org.quartz-scheduler</groupId>
    			<artifactId>quartz</artifactId>
    			<version>2.2.3</version>
    		</dependency>
    	</dependencies>
    

      

    2.任务类 

    class MailJob{
    
    private IStoredetailBiz storedetailBiz;
    	private MailUtil mailUtil;//邮件工具
    	private String to;//收件人
    	private String subject;//邮件标题
    	private String text;//邮件内容
    	
    	/**
    	 * 发送预警邮件任务的方法
    	 */
    	public void doJob(){
    		//获取预警的库存列表
    		List<Storealert> list = storedetailBiz.getStorealertList();
    		if(null != list && list.size() > 0){
    			DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    			try {
    				//发送邮件
    				mailUtil.sendMail(to, subject.replace("[time]", df.format(new Date())), 
    						text.replace("[count]", list.size() + ""));
    				System.out.println("邮件发送成功!");
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	public void setStoredetailBiz(IStoredetailBiz storedetailBiz) {
    		this.storedetailBiz = storedetailBiz;
    	}
    
    	public void setMailUtil(MailUtil mailUtil) {
    		this.mailUtil = mailUtil;
    	}
    
    	public void setTo(String to) {
    		this.to = to;
    	}
    
    	public void setSubject(String subject) {
    		this.subject = subject;
    	}
    
    	public void setText(String text) {
    		this.text = text;
    	}
    }
    }
    

     

    3.配置文件

    //3配置文件
    <!-- 定义一个任务类 -->
        <bean id="mailJob" class="cn.itcast.erp.job.MailJob">
            <property name="mailUtil" ref="mailUtil"></property>
            <property name="storedetailBiz" ref="storedetailBiz"></property>
            <property name="to" value="erik2010163@163.com"></property>
            <property name="subject" value="【Auto-Mail】库存预警_时间:[time]"></property>
            <property name="text" value="亲!有[count]种商品已经库存不足,请登陆ERP系统查看"></property>
        </bean>
        <!-- 任务类描述 -->
        <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject" ref="mailJob"></property>
            <property name="targetMethod" value="doJob"></property>
            <!-- 去掉并发执行 -->
            <property name="concurrent" value="false"/>
        </bean>
        <!-- 触发器  -->
        <bean id="jobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <property name="jobDetail" ref="jobDetail"></property>
            <!-- 七子表达式: -->
            <property name="cronExpression" value="0/30 * * * * ? *"></property>
        </bean>
        <!-- 任务调度管理容器 -->
        <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
            <property name="triggers">
                <list>
                    <ref bean="jobTrigger"/>
                </list>
            </property>
            <!-- 跳过 新版本的检查 -->
            <property name="quartzProperties"> 
                <props>
                    <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop> 
                </props>
            </property>
        </bean>
        
    </beans>

     

  • 相关阅读:
    Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
    Oracle Instant Client 安装配置
    Android Studio配置文件路径修改
    Java压缩技术(三) ZIP解压缩——Java原生实现
    Java压缩技术(二) ZIP压缩——Java原生实现
    Java压缩技术(一) ZLib
    [JavaEE] JBoss主要版本下载链接一览
    EL表达式
    如何实现hibernate的缓存机制
    如何理解hibernate当中的锁机制
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/7091623.html
Copyright © 2011-2022 走看看