Включить FeignClient в Spring Scheduling - PullRequest
0 голосов
/ 17 мая 2019

Я использую FeignClient для вызова другой службы для запроса какого-либо ресурса.FeignClient вызывается с помощью аннотированного метода @Scheduled, который выполняется каждые x минут.При запуске приложения и выполняемого метода выдается следующая ошибка:

java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.

Я запускаю Spring Boot 2.1.4 с Kotlin 1.3.31.Похоже, игра с настройками потоков не помогла.

@FeignClient(url = "\${example-service.url}", name = "example-service", configuration = [FeignConfiguration::class])
interface ExampleClient {
    @GetMapping("/v1/example/?exampleName={exampleName}")
    fun getExampleByNameReponse(@Param("exampleName") exampleName: String): List<ExampleApiResponse>
}
class FeignConfiguration {
    @Bean
    fun feignContract(): SpringMvcContract = SpringMvcContract()

    @Bean
    fun feignRequestInterceptor(): RequestInterceptor = FeignRequestInterceptor()
}

Я ожидаю, что запланированное задание будет запускаться каждый период x и извлекать ресурсы из FeignClient без ошибок.Он должен использовать запланированное задание, так как он должен быть обновлен.

...