问题标签 [spring-async]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 实现 AsyncConfigurer 时 Spring async 不起作用
有一个用于异步方法的 Spring 配置类:
我所有的@Async
方法都按预期工作,但如果我为了捕获实现方法的异常而实现AsyncConfigurer
,我的 bean 没有被代理,因此方法不会在池执行器中运行。AsyncConfiguration
getAsyncUncaughtExceptionHandler()
@Async
这是非工作配置:
会发生什么?
我们是@Async
这样使用的:
java - Spring-boot @Async 未与 @Scheduled 一起运行
我使用了这个教程,它是 github 项目作为这个 SSCCE 的基础。
由于未知原因,标记为@Async
从方法运行的@Scheduled
方法总是同步执行。
我正在寻找修复或解决方法以使代码performTask()
异步运行。
下面的类:
应用程序.java
MyAsyncService.java
计划任务.java
产生以下同步结果:
java - Spring Async:如何在 Async 方法中调用 spring hatoas ControllerLinkBuilder
我在 spring Async 方法中调用 ControllerLinkBuilder.linkTo 方法,但它找不到当前请求。
例外:
java - 异步和事务方法
我有一个从文件导入数据库的 Web 应用程序。该方法是异步和事务性的,读取和插入对象。问题是导入方法需要 5 或 6 分钟。如果我在没有关闭事务的情况下抛出两次导入方法,则第二种方法会重复插入 id。第一次运行很好,但是当您提交辅助失败时。这是我的代码:
我怎样才能解决这个问题?有没有办法用尾巴管理异步方法?对于直到另一个完成才开始的方法。
spring - 使用 Spring 的未来和异步注释
我正在阅读有关如何使用 Spring 的异步调用的页面: https ://spring.io/guides/gs/async-method/
这源于一些设计问题:
1)您是在抽象后面隐藏异步功能,还是直接使用它们?
2) 在上面的示例链接中,代码有一个“while 循环”,如果每个异步调用都返回,则每 10 毫秒检查一次。还有其他方法可以实现这一点,然后是持续的“while”循环吗?:) 感觉效率不是很高...
谢谢!
java - 如何将 Spring Retry 与 AsyncRestTemplate 集成
如何Spring Retry
与外部调用集成AsyncRestTemplate
?如果不可能,是否有另一个框架支持它?
我的用例:
你如何重试这个future.get()
调用?如果外部服务返回 404,我想避免在两者之间再次调用这些任务,而只是重试外部调用?我不能只future.get()
用 a包装,retryTemplate.execute()
因为它实际上不会再次调用外部服务。
spring-mvc - Spring MVC:带有编码 URL 的 DeferredResult:无效的编码序列
我正在使用Spring MVC 4.1.6和DeferedResult。它工作正常。但是,如果我确实使用编码的 url 进行了请求,那么我收到了错误。
控制器
要求
错误
在DeferedResult中设置了一些结果后解码 URL 的这个问题,但是HttpServletRequest.getRequestURI()已经从 UTF-8 解码。如何解决?
spring - 具有长时间运行任务的 Spring MVC DeferredResult 示例
谁能告诉我,如何使用 spring DeferredResult 执行长时间运行的事务任务?浏览了很多网上可用的教程,但文档和示例都没有明确说明非基于 Rest 的应用程序,它不需要长时间轮询,而是在后台运行任务并立即返回 HTTP 响应以及对同一控制器方法的后续调用只是返回结果。有了一些假设,我创建了如下
它会起作用还是有其他更好的方法来处理它?它会是线程安全的吗?是否有可能进入竞争状态?
hystrix - Spring Async 方法或事件抛出 HystrixRequestContext.initializeContext() 异常
我们的代码有几个 @Async 方法和 ApplicationListeners。这些类和方法最终会调用具有 @Hystrix 注释的 API 服务。这些调用引发以下异常:
在 Async 方法中添加 HystrixRequestContext.initializeContext() 没有帮助。
java - Spring @EnableAsync 打破 bean 初始化顺序?
我想@Async
在我的 SpringBoot 应用程序中引入方法(用于并行发送邮件)。但是,当我将@EnableAsync
注释放在我们应用程序的主@Configuration
类上(用 注释@SpringBootApplication
)时,Flyway DB 迁移会在执行之前执行DataSourceInitializer
(它为我的测试运行 schema.sql 和 data.sql)。
涉及“应该迁移”的数据库表的第一个操作失败。
删除@EnableAsync
使一切恢复正常。为什么会发生这种情况,我该如何解决这个问题(或解决这个问题)?
更新更多发现:@EnableAsync(mode = AdviceMode.ASPECTJ)
保持数据库设置的原始顺序,但该@Async
方法在与调用者线程相同的线程上运行。我还看到 Bean 'objectPostProcessor' 是在@EnableAsync
不存在或@EnableAsync(mode = AdviceMode.ASPECTJ)
使用时提前创建的(第 3 个 bean)。当使用 only 时@EnableAsync
,这个 bean 会在很久以后创建。
更新 2虽然我还无法创建一个重现问题的最小项目,但当我@EnableWebSocketMessageBroker
在以下注释中注释掉时,我发现受影响的应用程序中恢复了正确的数据库设置顺序:
如果存在,Bean 'webSocketConfig' 是创建的第一个 bean(根据 INFO 级控制台输出)@EnableWebSocketMessageBroker
。