我正在尝试将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
)的作业过滤器将自动执行,而无需任何额外配置。要了解更多信息,请参阅文档。