kotlin Jobrunr:如何为作业添加自定义过滤器?

busg9geu  于 2022-11-25  发布在  Kotlin
关注(0)|答案(1)|浏览(113)

我正在尝试将jobrunr 5.1.6集成到我的micronaut应用程序中。我无法在处理作业时触发过滤器实现ApplyStateFilter。请参阅以下内容:

class JobCompletionFilter : ApplyStateFilter {

override fun onStateApplied(job: Job?, oldState: JobState?, newState: JobState?) {
    if (newState != null) {
        if (isFailed(newState) && maxAmountOfRetriesReached(job)) {
            // Failed after retry. Add logs and handle strategy logic
        } else if (newState is SucceededState) {
            // Job succeeded. Add job completion logic
        }
    }
}

如何为我的所有作业注入此过滤器?下面是我如何将作业入队

@Inject
lateinit var jobScheduler: JobScheduler

jobScheduler.enqueue {jobProcessor.execute(job)}
67up9zun

67up9zun1#

在免费版本中,您必须通过Fluent Java API手动配置JobRunr,而不是使用Spring集成。在那里,您有可能通过过滤器。例如:

JobRunr
  .configure()
  .withJobFilter(...) // pass your job filters here

如需详细信息,请参阅fluent API
在专业版中,任何作为Spring Bean的作业筛选器(例如@Component@Service)将自动执行,无需任何其他配置。有关详细信息,请参阅docs

相关问题