s o m e t h i n g a b o u t m e

quartz enterprise job scheduler

краткие вкусовпечатления, так сказать :) понравилась узкая специализированность и продуманность фреймворка - все, для решения необходимой задачи. Каждая задача характеризуется JobDetails - тут ее можно отнести к некоторой группе задач, дать этой задаче имя, и, собственно указать, что есть задача - указать на класс (что примечательно, т.к. экземпляр класа задачи создается именно в момент выполнения и раньше не засоряет систему. + определение задачи классом прочищает мозг и мотивирует делать правильную архитектуру :) ).


JobDetail jobDetail = new JobDetail("myJob",                      // job name
                     sched.DEFAULT_GROUP, // job group ('null' to use the default group)
                     DumbJob.class);           // the java class to execute

Еще интересная штука - система календарей. Т.е. мы можем запустить scheduler (главный экземпляр механизма так сказать) с разными календарями - календарь с вырезанными выходными днями (Sun/Sat), с вырезанными праздниками, и собственный календарь, с вырезанными чем-угодно даже до минут :) (Calendar - an interface to be implemented by objects that define spaces of time that should be included or excluded from a Trigger’s normal ‘firing’ schedule). Да, триггеры тоже интересная вещь - они задают время выполениния джоба (т.е. сам джоб и расписание его выполнения - совершенно разные штуки), причем триггеры весьма гибкие - есть даже подобие cron-a с сохранением синтаксиса (например “0 30 10-13 ? * WED,FRI”), но тут плюс - выполнение до секунд, в отличии от поминутного никсового крона. А, еще джобы интересно интерраптятся - прям по правилам threads - поток должен завершить работу сам, потому джоб (если может быть прерван по запросу) должен реализовать спец. интерфейс InterruptableJob - а там есть метод interrupt, который и нужно реализовать :) красиво

плюс к этому всему - сохраниение джобов (в памяти, в базе, где-настроишь), листенеры на события - запуск джоба, пред-запуск, завершение работы и т.д.

т.е. довольно таки гибкий и удобный специализированный инструмент. мог в деталях ошибиться :) tutorial тут

RSS feed | Trackback URI

»

Name (required)
E-mail (required - never shown publicly)
URI
Subscribe to comments via email
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.