quartz 之job

job 在数据库中存储是是一个 class name,意味着其实际的执行内容是可以随时变的—— 它跟着class 文件而变。

 
这其实给与了 我们很大的灵活性!
 
 
job 是线程安全的? 答案是 yes,因为:quartz 是根据 表的 jobClass 字段, 每次创建job 实例,然后执行的!
 
 
 
job 里面可以有成员变量, 但是 因为每次job 都是被new 出来的, 所以如果其属性如不是static,那么每次都要实例这个任务类。。
 
 
//这个属性如不是static,那么每次都要实例这个任务类,始终打印为: 1
private static int _counter = 1;
 

import java.text.SimpleDateFormat;  
import java.util.Date;  
import org.quartz.DisallowConcurrentExecution;  
import org.quartz.Job;  
import org.quartz.JobDataMap;  
import org.quartz.JobExecutionContext;  
import org.quartz.JobExecutionException;  
import org.quartz.JobKey;  
import org.quartz.PersistJobDataAfterExecution;  
import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
  
@PersistJobDataAfterExecution  
@DisallowConcurrentExecution  
public class ColorJob implements Job {  
  
    private static Logger _log = LoggerFactory.getLogger(ColorJob.class);      
     
    public static final String FAVORITE_COLOR = "favorite color";  
    public static final String EXECUTION_COUNT = "count";      
     
    //这个属性如不是static,那么每次都要实例这个任务类,始终打印为: 1  
    private static  int _counter = 1;  
     
    public ColorJob() {  
    }    
    public void execute(JobExecutionContext context)  
        throws JobExecutionException {  
  
        
        JobKey jobKey = context.getJobDetail().getKey();          
         
        JobDataMap data = context.getJobDetail().getJobDataMap();  
        String favoriteColor = data.getString(FAVORITE_COLOR);  
        int count = data.getInt(EXECUTION_COUNT);  
          
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");          
          
        _log.error("任务Key: " + jobKey + " ,执行时间:  " + sdf.format(new Date()) + "
" +  
            "  传递参数(favorite color): " + favoriteColor + "
" +   
            "  传递参数(count):  " + count + "
" +   
            "  ColorJob静态变量值: " + _counter);  
       
        count++;  
        data.put(EXECUTION_COUNT, count);          
        
        _counter++;  
    }  
}  

代码参考 https://blog.csdn.net/yimeng528/article/details/84415579


版权声明
本文原创发表于 博客园,作者为 阿K .     本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
欢迎关注本人微信公众号:觉醒的码农,或者扫码进群:

原文地址:https://www.cnblogs.com/FlyAway2013/p/15172085.html