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



我正在尝试将jobrunr 5.1.6集成到我的微aut应用程序中。我无法在处理作业时触发实现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)}

在免费版本中,您将不得不通过Fluent Java API手动配置JobRunr,而不是使用Spring集成。这样,您就有可能通过筛选。一个例子:

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

更多信息请参见fluent API。

在Pro版本中,任何Spring Bean(例如@Component@Service)的作业过滤器将自动执行,而无需任何额外配置。要了解更多信息,请参阅文档。

最新更新