Что лучший способ состоит в том, чтобы создать очередь для продолжительных заданий в приложении Grails?

Согласно ответ на следующем связанном сообщении в блоге, они - чисто статический механизм в компиляторе F#. Таким образом, нет никакого представления CLR данных единиц.

Ее не совсем ясное, работает ли это в настоящее время с типами неплавающими, но с точки зрения системы типов это теоретически возможно.

7
задан Michael Borgwardt 26 July 2009 в 12:45
поделиться

4 ответа

Существует плагин grails background-thread , который может быть именно тем, что вы ищете.

Конечно, можно было бы создать собственный пул потоков или использовать существующий материал Java.

3
ответ дан 6 December 2019 в 19:40
поделиться

I'd use the grails JMS Plugin for this.

Then you can create a service with an "onMessage" method that interacts automatically with an underlying jms provider (like OpenMQ or ActiveMQ.

It makes this kind of thing pretty easy.

3
ответ дан 6 December 2019 в 19:40
поделиться

В духе «простейшей вещи, которая могла бы сработать» я сделал что-то подобное как простую услугу. (Конечно, это может быть слишком просто, критика приветствуется.)

Я использовал функцию Groovy, которая заключается в том, что Thread имеет статический метод запуска, который требует завершения. См. http://groovy.codehaus.org/groovy-jdk/java/lang/Thread.html

Я реализовал метод для службы, который выглядел так:

synchronized def runThreadedTask() {
  if(taskRunning) { 
    // taskRunning is defined as a service level flag to monitor job status
    // if we are already running the task just return
    return;
  }

  Thread.start {
    taskRunning = true
    // do job processing here
    taskRunning = false
  }
}
2
ответ дан 6 December 2019 в 19:40
поделиться

grails install-plugin background -thread

def backgroundService

backgroundService.execute ("делаю свое дело", {

// здесь работаю

});

1
ответ дан 6 December 2019 в 19:40
поделиться