{"id":12230,"date":"2017-02-01T09:20:11","date_gmt":"2017-02-01T08:20:11","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12230"},"modified":"2017-02-01T09:20:11","modified_gmt":"2017-02-01T08:20:11","slug":"quartz-attivita-temporizzate-in-java","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/quartz-attivita-temporizzate-in-java\/","title":{"rendered":"Quartz, attivit\u00e0 temporizzate in Java"},"content":{"rendered":"<p><a href=\"http:\/\/www.quartz-scheduler.org\/\" target=\"_blank\">Quartz<\/a> \u00e8 una libreria gratuita e open source che permette di pianificare l&#8217;esecuzione ripetuta e automatizzata di task nei nostri programmi Java. Per averla a disposizione \u00e8 necessario integrarla nel progetto <a href=\"http:\/\/www.quartz-scheduler.org\/downloads\/\" target=\"_blank\">scaricando i file jar<\/a> o definendo le dipendenze Maven (aggiornando opportunamente i numeri di versione interessati):<\/p>\n<pre class=\"lang:xhtml decode:true\">  &lt;dependency&gt;\r\n      &lt;groupId&gt;org.quartz-scheduler&lt;\/groupId&gt;\r\n      &lt;artifactId&gt;quartz&lt;\/artifactId&gt;\r\n      &lt;version&gt;2.2.1&lt;\/version&gt;\r\n  &lt;\/dependency&gt;\r\n  &lt;dependency&gt;\r\n      &lt;groupId&gt;org.quartz-scheduler&lt;\/groupId&gt;\r\n      &lt;artifactId&gt;quartz-jobs&lt;\/artifactId&gt;\r\n      &lt;version&gt;2.2.1&lt;\/version&gt;\r\n  &lt;\/dependency&gt;<\/pre>\n<p>Fatto ci\u00f2 si pu\u00f2 iniziare a programmare i propri lavori temporizzati scrivendo del codice simile al seguente:<\/p>\n<pre class=\"lang:java decode:true\"> JobDetail job = newJob(MyJob.class)\r\n      .withIdentity(\"job1\", \"group1\")\r\n      .build();\r\n\r\n  Trigger trigger = newTrigger()\r\n      .withIdentity(\"trigger1\", \"group1\")\r\n      .startNow()\r\n      .withSchedule(simpleSchedule()\r\n              .withIntervalInSeconds(40)\r\n              .repeatForever())\r\n      .build();\r\n\r\n  scheduler.scheduleJob(job, trigger);\r\n<\/pre>\n<p>dove, per prima cosa, definiamo un Job, implementato in questo caso dalla classe MyJob, in cui verr\u00e0 inserito il codice da attivare periodicamente e successivamente lo programmiamo in un <em>trigger<\/em> che\u00a0definir\u00e0 i tempi della schedulazione. Infine lo scheduler dar\u00e0 il via alle attivit\u00e0 prendendosi carico sia del Job che del Trigger.<\/p>\n<p>Quartz si distingue perch\u00e8 gestisce bene un&#8217;attivit\u00e0 che non sempre \u00e8 semplice ottimizzare in quanto la ripetizione di un lavoro a intervalli regolari\u00a0per molto tempo richiede un uso particolarmente\u00a0efficiente delle risorse: non dimentichiamo inoltre che stiamo parlando\u00a0di una tecnica assolutamente indispensabile in molti tipi di software.<\/p>\n<p>Conoscevate gi\u00e0 Quartz? Fateci sapere la vostra !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quartz \u00e8 una libreria gratuita e open source che permette di pianificare l&#8217;esecuzione ripetuta e automatizzata di&#8230;<\/p>\n","protected":false},"author":561,"featured_media":12771,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[481],"tags":[1526,1868],"class_list":["post-12230","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-risorse-utili","tag-java","tag-quartz"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12230"}],"version-history":[{"count":4,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12230\/revisions"}],"predecessor-version":[{"id":12773,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12230\/revisions\/12773"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/12771"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}