{"id":5546,"date":"2018-08-21T10:48:06","date_gmt":"2018-08-21T01:48:06","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=5546"},"modified":"2020-05-28T13:25:13","modified_gmt":"2020-05-28T04:25:13","slug":"java-%ec%9b%90%ed%95%98%eb%8a%94-%ec%8b%9c%ea%b0%84%ec%97%90-%ec%9b%90%ed%95%98%eb%8a%94-%ea%b8%b0%eb%8a%a5%ec%9d%84-%ec%8b%a4%ed%96%89%ed%95%b4-%ec%a3%bc%eb%8a%94-scheduler-%eb%9d%bc%ec%9d%b4","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=5546","title":{"rendered":"[Java] \uc6d0\ud558\ub294 \uc2dc\uac04\uc5d0 \uc6d0\ud558\ub294 \uae30\ub2a5\uc744 \uc2e4\ud589\ud574 \uc8fc\ub294 Scheduler \ub77c\uc774\ube0c\ub7ec\ub9ac, Quartz v2.2.3"},"content":{"rendered":"<p>\uc6d0\ud558\ub294 \uc2dc\uac04\uc5d0 \uc6d0\ud558\ub294 \uae30\ub2a5\uc744 \uc2e4\ud589\ud574 \uc8fc\ub294 \uc2a4\ucf00\uc904\ub7ec \uae30\ub2a5\uc744 Java\uc5d0\uc11c \uc2e4\ud589\ud558\uae30 \uc704\ud574\uc11c \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 Quartz\uc785\ub2c8\ub2e4. Quartz\ub294 \uae30\ub2a5\uc744 \uc548\uc815\uc801\uc73c\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4\ub294 \uc7a5\uc810\uacfc \ud568\uaed8, \ud2b9\ud788 \uc2e4\ud589\ud560 \uc2dc\uac04\uc744 \ub9e4\uc6b0 \uc720\uc5f0\ud558\uac8c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798\uc758 \ucf54\ub4dc\ub294 \ub9e4 \uc21c\uac04\uc758 \uc2dc\uac04\uc774 5\ucd08\uc77c\ub54c(5\ucd08\ub9c8\ub2e4\uac00 \uc544\ub2d8) \ud2b9\uc815\ud55c \uae30\ub2a5, \uc989 Job\uc744 \uc2e4\ud589\ud574 \uc8fc\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\npackage quartz;\r\n\r\nimport static org.quartz.CronScheduleBuilder.cronSchedule;\r\nimport static org.quartz.JobBuilder.newJob;\r\nimport static org.quartz.TriggerBuilder.newTrigger;\r\n\r\nimport org.quartz.JobDetail;\r\nimport org.quartz.Scheduler;\r\nimport org.quartz.SchedulerFactory;\r\nimport org.quartz.Trigger;\r\nimport org.quartz.impl.StdSchedulerFactory;\r\n\r\npublic class MainEntry {\r\n    public static void main(String[] args) {\r\n        SchedulerFactory schedulerFactory = new StdSchedulerFactory();\r\n\t\t\r\n        try {\r\n            Scheduler scheduler = schedulerFactory.getScheduler();\r\n\t\t\t\r\n            JobDetail job = newJob(TestJob.class)\r\n                .withIdentity(\"jobName\", Scheduler.DEFAULT_GROUP)\r\n                .build();\r\n\t\t\t\r\n            Trigger trigger = newTrigger()\r\n                .withIdentity(\"trggerName\", Scheduler.DEFAULT_GROUP)\r\n                .withSchedule(cronSchedule(\"5 * * * * ?\"))\r\n                .build();\r\n\t\t\t\t\t\t\r\n            scheduler.scheduleJob(job, trigger);\r\n            scheduler.start();\r\n        } catch(Exception e) {\r\n            e.printStackTrace();\r\n        }\t\t\r\n    }\r\n}\r\n<\/pre>\n<p>26\ubc88\uc9f8 \ucf54\ub4dc\ub97c \ubcf4\uba74 cronSchedule \ud568\uc218\ub97c \ud1b5\ud574 Job\uc744 \uc2e4\ud589\ud560 \uc2dc\uac04\uc744 \uc815\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc2dc\uac04\uc744 \uc815\ud558\ub294 \ubc29\uc2dd\uc744 5 * * * * ?\uc778\ub370\uc694. \uc21c\uc11c\ub300\ub85c \ucd08 \ubd84 \uc2dc \uc77c \uc6d4 \uc694\uc77c \ub144\ub3c4(\uc635\uc158)\uc785\ub2c8\ub2e4. \uc989 \ucd08\ub97c 5\ub85c \ud558\uace0 \ub098\uba38\uc9c0\uc5d0 \ub300\ud574\uc11c\ub294 * \ub610\ub294 ?\ub85c \uc9c0\uc815\ud568\uc73c\ub85c\uc368 \ub9e4\uc21c\uac04\uc758 \uc2dc\uac04\uc774 5\ucd08\uc77c\ub54c Job\uc744 \uc2e4\ud589\ud558\uac8c \ub429\ub2c8\ub2e4. \uadf8\ub7fc, \uc2e4\ud589\ud560 Job\uc740 \uc5b4\ub5bb\uac8c \uc9c0\uc815\ud560\uae4c\uc694? 20\ubc88 \ucf54\ub4dc\uc758 newJob \ud568\uc218\ub97c \ud1b5\ud574 \uc9c0\uc815\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. Job\uc73c\ub85c TestJob\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub294\ub370.. \uc774 TestJob\uc758 \ucf54\ub4dc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\npackage quartz;\r\n\r\nimport java.util.Date;\r\nimport org.quartz.Job;\r\nimport org.quartz.JobExecutionContext;\r\nimport org.quartz.JobExecutionException;\r\n\r\npublic class TestJob implements Job {\r\n    @Override\r\n    public void execute(JobExecutionContext arg0) throws JobExecutionException {\r\n        System.out.println(\"Job Executed [\" + new Date(System.currentTimeMillis()) + \"]\"); \r\n    }\r\n}\r\n<\/pre>\n<p>\uc704\uc758 \uc608\uc5d0\uc11c\ub294 \uac04\ub2e8\ud788 Job\uc774 \uc2e4\ud589\ub418\ub294 \uc2dc\uac04\uacfc Job Executed\ub77c\ub294 \ubb38\uc790\uc5f4\uc744 \ud45c\uc2dc\ud558\ub294 \uc77c\ub9cc \ud569\ub2c8\ub2e4.<\/p>\n<p>Quartz \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 http:\/\/www.quartz-scheduler.org\/downloads \uc5d0\uc11c \ubc1b\uc744 \uc218 \uc788\uc73c\uba70, \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc740 jar \uc911 \ucd5c\uc18c\ud55c quartz-{version}.jar\uc640 slf4j-api-{version}.jar\ub97c \ucc38\uc870\ud574\uc918\uc57c \ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc6d0\ud558\ub294 \uc2dc\uac04\uc5d0 \uc6d0\ud558\ub294 \uae30\ub2a5\uc744 \uc2e4\ud589\ud574 \uc8fc\ub294 \uc2a4\ucf00\uc904\ub7ec \uae30\ub2a5\uc744 Java\uc5d0\uc11c \uc2e4\ud589\ud558\uae30 \uc704\ud574\uc11c \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 Quartz\uc785\ub2c8\ub2e4. Quartz\ub294 \uae30\ub2a5\uc744 \uc548\uc815\uc801\uc73c\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4\ub294 \uc7a5\uc810\uacfc \ud568\uaed8, \ud2b9\ud788 \uc2e4\ud589\ud560 \uc2dc\uac04\uc744 \ub9e4\uc6b0 \uc720\uc5f0\ud558\uac8c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc758 \ucf54\ub4dc\ub294 \ub9e4 \uc21c\uac04\uc758 \uc2dc\uac04\uc774 5\ucd08\uc77c\ub54c(5\ucd08\ub9c8\ub2e4\uac00 \uc544\ub2d8) \ud2b9\uc815\ud55c \uae30\ub2a5, \uc989 Job\uc744 \uc2e4\ud589\ud574 \uc8fc\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4. package quartz; import static org.quartz.CronScheduleBuilder.cronSchedule; import static org.quartz.JobBuilder.newJob; import &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=5546\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[Java] \uc6d0\ud558\ub294 \uc2dc\uac04\uc5d0 \uc6d0\ud558\ub294 \uae30\ub2a5\uc744 \uc2e4\ud589\ud574 \uc8fc\ub294 Scheduler \ub77c\uc774\ube0c\ub7ec\ub9ac, Quartz v2.2.3&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[],"class_list":["post-5546","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5546"}],"version-history":[{"count":5,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5546\/revisions"}],"predecessor-version":[{"id":9584,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5546\/revisions\/9584"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5546"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}