Java 如何创建可以取消和重新安排的计时器任务

Java 如何创建可以取消和重新安排的计时器任务,java,time,timer,Java,Time,Timer,我有一个应用程序,需要每n分钟运行一小时,n可以是5,15,30等。。。 所以我写了一个计时器,每1分钟调用一次,我将以分钟为单位计算当前时间%n,以检查其时间是否符合计划 现在的问题是,一旦任务被安排在第n分钟,我希望计时器暂停,因为它需要一分钟以上的时间才能完成 我想知道,有没有一种方法可以在计划作业时取消计时器,并在作业完成时重新计划 我尝试使用timer.cancel,但它抛出非法状态异常。您可能想看看quartz调度程序java…您使用的是经典的timer/TimerTask还是Sch

我有一个应用程序,需要每n分钟运行一小时,n可以是5,15,30等。。。 所以我写了一个计时器,每1分钟调用一次,我将以分钟为单位计算当前时间%n,以检查其时间是否符合计划

现在的问题是,一旦任务被安排在第n分钟,我希望计时器暂停,因为它需要一分钟以上的时间才能完成

我想知道,有没有一种方法可以在计划作业时取消计时器,并在作业完成时重新计划


我尝试使用timer.cancel,但它抛出非法状态异常。

您可能想看看quartz调度程序java…您使用的是经典的timer/TimerTask还是ScheduledThreadPoolExecutor?(后一种方法是目前调度任务的首选方法)