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>

     

  • 相关阅读:
    Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决)
    关于dubbo的provider和consumer都配置timeout超时时间的情况
    cas单点登录-CAS5.1.3 overlay服务器搭建(二)
    cas单点登录-https的配置(一)
    mysql5.6性能优化
    jvm面试题
    关于Class.getResource和ClassLoader.getResource的路径问题
    构建流式计算卖家日志系统应用实践
    在分布式系统里看CAP定理
    bootstrap插件(对话框)bootbox参数和自定义弹出框宽度设置
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/7091623.html
Copyright © 2011-2022 走看看