遇到个很神奇的事情。 
用一个group名字做定时任务,任务完成后,把相关的所有东西都删除了, 
按理说应该是删除的干干净净,啥都没有了。也检查了,确实什么都没有了。 
然后再用相同的group名字和其他的名字一起加入定时任务,正确加入。。 
神奇的事情就发生了,到了时间不执行。完全不动 
期待高手给解释!
import static org.quartz.CronScheduleBuilder.dailyAtHourAndMinute;   
import static org.quartz.JobBuilder.newJob;   
import static org.quartz.TriggerBuilder.newTrigger;   
  
import java.util.Date;   
import java.util.List;   
import java.util.Set;   
import java.util.concurrent.ArrayBlockingQueue;   
  
import org.apache.commons.logging.Log;   
import org.apache.commons.logging.LogFactory;   
import org.quartz.JobDetail;   
import org.quartz.JobKey;   
import org.quartz.Scheduler;   
import org.quartz.SchedulerException;   
import org.quartz.SchedulerFactory;   
import org.quartz.Trigger;   
import org.quartz.impl.StdSchedulerFactory;   
import org.quartz.impl.matchers.GroupMatcher;   
  
public class TestMain {   
    private static final Log log = LogFactory.getLog( TestMain.class );   
       
    public static ArrayBlockingQueue<String> tmpQueue = new ArrayBlockingQueue<String>(1);   
       
    /**  
     * @param args  
     */  
    public static void main(String[] args) {   
           
        // 创建调度者工厂   
        SchedulerFactory sfc = new StdSchedulerFactory();   
           
        // 通过工厂创建一个调度者   
        Scheduler scheduler = null;   
        try {   
            scheduler = sfc.getScheduler();   
            scheduler.start();   
        } catch (SchedulerException e1) {   
            e1.printStackTrace();   
        }   
           
        int hour = 13;   
        int min = 57;   
           
        int cnt = 2;   
           
        for(int i = 0; i < cnt; i++){   
            min++;   
               
            JobDetail myJob = newJob(TestJob.class).withIdentity("123", "456").build();   
            Trigger trigger = null;   
            trigger = newTrigger().forJob("123", "456").withIdentity("abc", "efg").   
             withSchedule(dailyAtHourAndMinute(hour, min)).build();   
               
            Date startDate = null;   
            try {   
                startDate = scheduler.scheduleJob(myJob, trigger);   
                log.info("任务运行时间: " + startDate);   
                tmpQueue.take();   
                   
                Thread.sleep(5000);   
                   
                boolean flag = removeJob(scheduler, "456");   
                System.out.println(flag);   
                   
            } catch (Exception e) {   
                e.printStackTrace();   
            }   
               
        }   
        JobDetail myJob = newJob(TestJob.class).withIdentity("1231", "456").build();   
        Trigger trigger = null;   
        trigger = newTrigger().forJob("1231", "456").withIdentity("abc", "efg").   
         withSchedule(dailyAtHourAndMinute(hour, min)).build();   
           
        Date startDate = null;   
        try {   
            startDate = scheduler.scheduleJob(myJob, trigger);   
            log.info("任务运行时间: " + startDate);   
               
            tmpQueue.take();   
               
            Thread.sleep(5000);   
               
            boolean flag = removeJob(scheduler, "4561");   
            System.out.println(flag);   
               
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
           
    }   
       
       
    public static boolean removeJob(Scheduler scheduler, String groupName){   
        try {   
            GroupMatcher<JobKey> groupMatcher = GroupMatcher.groupEquals(groupName);   
            scheduler.pauseJobs(groupMatcher);   
  
//          GroupMatcher<TriggerKey> keyMatcher = GroupMatcher.groupEquals(groupName);   
//          scheduler.pauseTriggers(keyMatcher);   
               
            Set<JobKey> jobKeySet = scheduler.getJobKeys(groupMatcher);   
            for (JobKey jobKey2 : jobKeySet) {   
                   
                List<Trigger> triggerList = (List<Trigger>)scheduler.getTriggersOfJob(jobKey2);   
                for (Trigger trigger : triggerList) {   
                    scheduler.pauseTrigger(trigger.getKey());   
                    boolean unResult = scheduler.unscheduleJob(trigger.getKey());   
                    System.out.println("删除触发器: " + unResult);   
                }   
                   
//              boolean result = scheduler.deleteJob(jobKey2);   
//              System.out.println("删除任务: " + result);   
//              log.debug(result);   
                   
                System.out.println("任务是否存在" + scheduler.checkExists(jobKey2));   
                for (Trigger trigger : triggerList) {   
                    System.out.println("触发器是否存在" + scheduler.checkExists(trigger.getKey()));   
                }   
                   
                List<String> groupNameList = scheduler.getJobGroupNames();   
                for (String string : groupNameList) {   
                    System.out.println(string);   
                }   
                scheduler.clear();   
            }   
            //处理任务被停止的相关业务逻辑   
            log.debug("removeSchedule:" + groupName);   
               
            return true;   
        } catch (Exception e) {   
            log.error("removeSchedule error", e);   
        }   
        return false;   
    }   
  
}  
job类 public class TestJob implements Job {   
    private static final Log log = LogFactory.getLog( TestJob.class );   
    public void execute(JobExecutionContext arg0) throws JobExecutionException {   
        log.info("开始执行定时任务....");   
        TestMain.tmpQueue.add("1");   
    }   
}