Поиск:

Ответ в темуСоздание новой темы Создание опроса
> job в один поток, job в один поток 
:(
    Опции темы
igilfanov
  Дата 28.3.2013, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



Использую 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()            
    }
}


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

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

Спасибо.
PM MAIL   Вверх
vogdb
Дата 4.4.2013, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



@DisallowConcurrentExecution к объявлению класса job'а. При этом версия плагина должна быть >= 1.0-RC3
PM MAIL   Вверх
igilfanov
  Дата 5.4.2013, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



с аннотацией @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()            
    }
}




PM MAIL   Вверх
igilfanov
  Дата 5.4.2013, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



все же что-то конструкция 
Код
  def concurrent = false 
 особо не помогает, магически создаются 10 потоков.

vogdb, вы можете продемонстрировать полный пример класса Job с аннотацией @DisallowConcurrentExecution, может нужно унаследовать от какого-нибудь класса ?

версия плагина:  quartz:1.0-RC5

Это сообщение отредактировал(а) igilfanov - 5.4.2013, 09:36
PM MAIL   Вверх
vogdb
Дата 8.4.2013, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



Привет! Прошу прошения, что подсказал навскиду, не особо подумав и перепроверив документацию. Полагал, что они используют 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.

Это сообщение отредактировал(а) vogdb - 8.4.2013, 23:24
PM MAIL   Вверх
igilfanov
Дата 9.4.2013, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.10.2011

Репутация: нет
Всего: нет



создал тестовое grails 2.2.1 приложение, установил плагин quartz:1.0-RC6, вышеуказанный код теперь работает корректно.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Groovy & Grails | Следующая тема »


 




[ Время генерации скрипта: 0.1304 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.