{"id":6050,"date":"2012-07-17T15:21:54","date_gmt":"2012-07-17T09:51:54","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=6050"},"modified":"2012-07-17T15:21:54","modified_gmt":"2012-07-17T09:51:54","slug":"removing-triggers-and-rescheduling-a-quartz-2-job-programatically","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/removing-triggers-and-rescheduling-a-quartz-2-job-programatically\/","title":{"rendered":"Removing Triggers and Rescheduling a Quartz 2 Job programatically"},"content":{"rendered":"<p>In my recent project there was a use case to change repeat interval of job so that job runs after every 8 seconds instead of 1 second.<br \/>\n[java]<br \/>\nclass TestJob {<\/p>\n<p>    def concurrent = false<\/p>\n<p>    static triggers = {<br \/>\n        simple repeatInterval: 1000l \/\/ execute job once in 1 sec<br \/>\n    }<\/p>\n<p>    def execute() {<br \/>\n        println &quot;executing job&quot;<br \/>\n    }<br \/>\n}<br \/>\n[\/java]<\/p>\n<p>Using<br \/>\n[java]<br \/>\nTestJob.schedule(8000l)<br \/>\n[\/java]<\/p>\n<p>scheduled job to trigger at every 8 seconds but it did not remove existing trigger of running job after 1 second. Thanks to my colleagues <a href=\"http:\/\/www.tothenew.com\/blog\/author\/vivek\/\" target=\"_blank\">Vivek <\/a> and <a href=\"http:\/\/www.tothenew.com\/blog\/author\/ankur\/\" target=\"_blank\">Ankur<\/a>, we found following way to remove existing triggers and schedule job again:<\/p>\n<p>[java]<br \/>\n       def quartzScheduler                \/\/ Inject the quartzScheduler bean<br \/>\n     def reScheduleJob = {<br \/>\n        \/\/ find jobKey of job<br \/>\n        def jobKey = grailsApplication.jobClasses.find {it.clazz == TestJob.class}.jobKey<br \/>\n        \/\/ get list of existing triggers<br \/>\n        def triggersList = quartzScheduler.getTriggersOfJob(jobKey)<br \/>\n        triggersList.each {<br \/>\n            quartzScheduler.unscheduleJob(it.key)  \/\/ remove all existing triggers<br \/>\n        }<br \/>\n    }<br \/>\n[\/java]<br \/>\nNow schedule job to trigger after every 8 seconds<br \/>\n[java]<br \/>\nTestJob.schedule(8000l)<br \/>\n[\/java]<\/p>\n<p>It worked for us.Hope it will save your time too.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my recent project there was a use case to change repeat interval of job so that job runs after every 8 seconds instead of 1 second. [java] class TestJob { def concurrent = false static triggers = { simple repeatInterval: 1000l \/\/ execute job once in 1 sec } def execute() { println &quot;executing [&hellip;]<\/p>\n","protected":false},"author":57,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":46},"categories":[7],"tags":[152,155,853,150,149],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/6050"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/57"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=6050"}],"version-history":[{"count":0,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/6050\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=6050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=6050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=6050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}