| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Groovy & Grails > job в один поток |
| Автор: igilfanov 28.3.2013, 12:48 | ||
| Использую http://grails.org/plugin/quartz. Как правильно задать параметры для static triggers класса job, чтобы планировщик создавал 1 поток, последовательно выполняя задачу через n количество времени ? попытки:
у меня складывается такое ощущение, что данный планировщик создает параллельно несколько потоков. можно ли проверить мою гипотезу? Спасибо. |
| Автор: vogdb 4.4.2013, 16:49 |
| @DisallowConcurrentExecution к объявлению класса job'а. При этом версия плагина должна быть >= 1.0-RC3 |
| Автор: igilfanov 5.4.2013, 08:45 | ||||
| с аннотацией @DisallowConcurrentExecution не получилось, указывает на unable to resolve class DisallowConcurrentExecution, unable to find class for annotation. Из документации http://grails-plugins.github.com/grails-quartz/guide/configuration.html : Configuring concurrent execution By default Jobs are executed in concurrent fashion, so new Job execution can start even if previous execution of the same Job is still running. If you want to override this behavior you can use 'concurrent' property, in this case Quartz's StatefulJob will be used (you can find more info about it here):
|
| Автор: igilfanov 5.4.2013, 09:34 | ||
все же что-то конструкция
vogdb, вы можете продемонстрировать полный пример класса Job с аннотацией @DisallowConcurrentExecution, может нужно унаследовать от какого-нибудь класса ? версия плагина: quartz:1.0-RC5 |
| Автор: vogdb 8.4.2013, 22:49 |
| Привет! Прошу прошения, что подсказал навскиду, не особо подумав и перепроверив документацию. Полагал, что они используют Job класс оригинальной библиотеки. Гляну сейчас исходники, что у них там. Итак. Унаследовать не получится, потому что Job класс в grails никакой не Quartz Job класс. Это всего лишь обертка, на базе которого создается Spring Quartz Job класс, опять же не Quartz Job =). Так что как не наследуй, а браться будет из класса только то, что известно Reflection'у. Мой совет создать тестовый проект, наглядно демонстрирующий работы свойства concurrent. Проверить его на связке версий плагин 1.0-RC6, grails 2.2.0 и плагин 1.0-RC5, grails 2.1.0. Если работать не будет, то смело закидывать этот проект на github и писать issue к проекту плагина на том же github. Понимаю, что легко давать советы, но за те полчаса что у меня были, я не успел понять передается ли данное свойство в Spring Quartz Job. |
| Автор: igilfanov 9.4.2013, 09:34 |
| создал тестовое grails 2.2.1 приложение, установил плагин quartz:1.0-RC6, вышеуказанный код теперь работает корректно. |