Grails — использование значения конфигурации для выражения cron в запланированных заданиях

#grails #cron

#grails #cron

Вопрос:

 grailsApplication.config.myJob.cron.cronExpression = Configuration.findByConfigKey("schedule")?.configValue

MyJob.schedule(grailsApplication.config.archiveTablesJob.cron.cronExpression)
  

Ошибка начальной загрузки … исключение java.lang.RuntimeException.

Он не получает значение из конфигурации

Как получить значение cron из таблицы (базы данных) динамически?

Комментарии:

1. «grailsApplication.config.MyJob.cron.CronExpression» вы хотите передать эту переменную в «MyJob»?.

2. мой планировщик cron работает корректно в течение определенного времени. Но мое фактическое требование — это время (0 15 14? * MON-SUN) должен быть взят из database.so я написал в bootstrap приведенные выше коды, но я не могу импортировать свой класс Myjob . извините за это ArchiveTableJob

3. предоставьте более подробную информацию и полную трассировку стека ошибок.

4. дипак, моя реальная проблема заключается в том, что значения времени, которые мы даем, должны быть взяты из базы данных, а не как значение по умолчанию. если это непонятно, пожалуйста, ответьте

5. Это означает, что вы хотите получить доступ к вашему классу Myjob в bootsrap.groovy это единственная проблема, верно?

Ответ №1:

В вашем файле Bootstrap.groovy, настроенном следующим образом.

 import com.Myjob          //import your job package
class BootStrap {

    def grailsApplication

    def init = { servletContext ->
    grailsApplication.config.myJob.cron.cronExpression =        Configuration.findByConfigKey("schedule")?.configValue
        MyJob.schedule(grailsApplication.config.myJob.cron.cronExpression)
    }
}
  

Комментарии:

1. я считаю, что вы получаете выражение cron из базы данных.

2. на самом деле при импорте Myjob отображается ошибка (невозможно разрешить класс groovy)