job в один поток

 
0
 
Java
ava
igilfanov | 28.03.2013, 13:48
Использую http://grails.org/plugin/quartz. Как правильно задать параметры для static triggers класса job, чтобы планировщик создавал 1 поток, последовательно выполняя задачу через n количество времени ?

попытки:


package ree16

class ReestrLoaderJob {

    static triggers = {
      simple startDelay:30000, repeatInterval: 150000      
    }

    def reestrLoaderService
    
    def execute() {      
         reestrLoaderService.run()            
    }
}


у меня складывается такое ощущение, что данный планировщик создает параллельно несколько потоков.

можно ли проверить мою гипотезу?

Спасибо.
Kommentare (5)
ava
vogdb | 04.04.2013, 16:49 #
@DisallowConcurrentExecution к объявлению класса job'а. При этом версия плагина должна быть >= 1.0-RC3
ava
igilfanov | 05.04.2013, 08:45 #
с аннотацией @DisallowConcurrentExecution не получилось, указывает на unable to resolve class DisallowConcurrentExecution, unable to find class for annotation.

Из документации grails-quartz configuration :

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):


    def concurrent = false





package ree16

class ReestrLoaderJob {

    def concurrent = false

    static triggers = {
      simple startDelay:30000, repeatInterval: 150000      
    }
    def reestrLoaderService
    
    def execute() {      
         reestrLoaderService.run()            
    }
}



ava
igilfanov | 05.04.2013, 09:34 #
все же что-то конструкция 
  def concurrent = false 
 особо не помогает, магически создаются 10 потоков.

vogdb, вы можете продемонстрировать полный пример класса Job с аннотацией @DisallowConcurrentExecution, может нужно унаследовать от какого-нибудь класса ?
ava
vogdb | 08.04.2013, 22:49 #
Привет! Прошу прошения, что подсказал навскиду, не особо подумав и перепроверив документацию. Полагал, что они используют Job класс оригинальной библиотеки. Гляну сейчас исходники, что у них там.
ava
igilfanov | 09.04.2013, 09:34 #
создал тестовое grails 2.2.1 приложение, установил плагин quartz:1.0-RC6, вышеуказанный код теперь работает корректно.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden