You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Micronaut @ExecuteOn注解失效排查及禁用阻塞检查配置咨询

关于Micronaut @ExecuteOn注解失效与阻塞检查禁用的问题

@ExecuteOn注解失效的常见原因

  • 注解位置或范围错误:@ExecuteOn可标注在控制器类或单个请求处理方法上,如果仅在方法上标注但类上存在其他线程调度注解(如@Async),会引发逻辑冲突;若目标方法是控制器内部私有方法而非对外的请求处理方法,注解也不会生效。
  • Reactive返回类型的线程优先级:如果方法返回Flowable、Single这类Reactive类型,Micronaut会优先遵循Reactive流的线程调度策略,@ExecuteOn的配置会被忽略,此时需通过Reactive API的subscribeOn()方法指定执行线程。
  • AOP代理未生效:如果控制器类是final类、没有无参构造方法,或者未被Micronaut的DI容器正确管理,@ExecuteOn对应的AOP切面无法生成代理,注解逻辑自然不执行。
  • 版本兼容性bug:部分Micronaut 2.x早期版本存在@ExecuteOn注解处理的缺陷,升级到对应分支的稳定版本即可解决。

禁用BlockingHttpClient事件循环检查的配置项

若确认必须在事件循环线程上执行阻塞HTTP请求,可通过以下配置关闭检查:

YAML格式(application.yml)

micronaut:
  http:
    client:
      blocking:
        warn-on-event-loop: false

Properties格式(application.properties)

micronaut.http.client.blocking.warn-on-event-loop=false

注意:此配置仅适合临时规避问题,长期来看仍建议通过@ExecuteOn指定正确的执行线程,或改用Reactive HTTP Client,避免阻塞Netty事件循环影响应用性能。

内容的提问来源于stack exchange,提问作者Stewart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 03:48:12