Quartzタイミングタスクトリガ起動時設定

2034 ワード

  • トリガのCron式をデータベースに格納するため、メンテナンスが容易です.そのため、プロジェクトの開始時にデータベースに行ってCron式を取得し、トリガを構成してスケジューラに追加する必要があります.
  • インプリメンテーション

  • タイミングタスクに関するBeanを構成する場合、initメソッドを設定することにより、Beanを構成する際にデータベースからのCron式の取得を実行する.
  • メソッドを追加する必要があるため、iniを継承するクラスを新規作成する必要があります.
  • は、CronTriggerBeanメソッドでデータベースからCron式を取得し、iniに設定する.
  • 
    
    
    
        
            
        
        
            exec
        
    
      
    
        
    
    
    public class CronTriggerBean extends CronTriggerBean{
        public void init(){
            String hql = "xxx";        
            List list = Dao.getHibernateTemplate().find(sb.toString());
            String cronExpression=null;
            if(null!=list&&list.size()>0){
                cronExpression=list.get(0).getCCronExpression();
            }else{
                //  Cron , , Cron 
                cronExpression="0 0 5 31 2 ?";
                logger.error(" Cron 。");    
            }
            try {
                super.setCronExpression(cronExpression);
            } catch (ParseException e) {
                logger.error(String.format(" Cron , Cron 【0 0 5 31 2 ?】, Cron 【%s】。", cronExpression));   
                //  Crontab , Cron 
                try {
                    super.setCronExpression("0 0 5 31 2 ?");
                } catch (ParseException e1) {
                }
            }
        }
    }
    
    
    原文を参照:http://yuyy.info/uncategorized/quartz%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1%e8%a7%a6%e5%8f%91%e5%99%a8%e5%90%af%e5%8a%a8%e6%97%b6%e8%ae%be%e7%bd%ae/