问题标签 [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.

0 投票
1 回答
12307 浏览

spring - 实现 AsyncConfigurer 时 Spring async 不起作用

有一个用于异步方法的 Spring 配置类:

我所有的@Async方法都按预期工作,但如果我为了捕获实现方法的异常而实现AsyncConfigurer,我的 bean 没有被代理,因此方法不会在池执行器中运行。AsyncConfigurationgetAsyncUncaughtExceptionHandler()@Async

这是非工作配置:

会发生什么?

我们是@Async这样使用的:

0 投票
1 回答
1613 浏览

java - Spring-boot @Async 未与 @Scheduled 一起运行

我使用了这个教程它是 github 项目作为这个 SSCCE 的基础。

由于未知原因,标记为@Async从方法运行的@Scheduled方法总是同步执行。

我正在寻找修复或解决方法以使代码performTask()异步运行。

下面的类:

应用程序.java

MyAsyncService.java

计划任务.java

产生以下同步结果:

0 投票
2 回答
676 浏览

java - Spring Async:如何在 Async 方法中调用 spring hatoas ControllerLinkBuilder

我在 spring Async 方法中调用 ControllerLinkBuilder.linkTo 方法,但它找不到当前请求。

例外:

0 投票
0 回答
306 浏览

java - 异步和事务方法

我有一个从文件导入数据库的 Web 应用程序。该方法是异步和事务性的,读取和插入对象。问题是导入方法需要 5 或 6 分钟。如果我在没有关闭事务的情况下抛出两次导入方法,则第二种方法会重复插入 id。第一次运行很好,但是当您提交辅助失败时。这是我的代码:

我怎样才能解决这个问题?有没有办法用尾巴管理异步方法?对于直到另一个完成才开始的方法。

0 投票
2 回答
487 浏览

spring - 使用 Spring 的未来和异步注释

我正在阅读有关如何使用 Spring 的异步调用的页面: https ://spring.io/guides/gs/async-method/

这源于一些设计问题:

1)您是在抽象后面隐藏异步功能,还是直接使用它们?

2) 在上面的示例链接中,代码有一个“while 循环”,如果每个异步调用都返回,则每 10 毫秒检查一次。还有其他方法可以实现这一点,然后是持续的“while”循环吗?:) 感觉效率不是很高...

谢谢!

0 投票
1 回答
1867 浏览

java - 如何将 Spring Retry 与 AsyncRestTemplate 集成

如何Spring Retry与外部调用集成AsyncRestTemplate?如果不可能,是否有另一个框架支持它?

我的用例:

你如何重试这个future.get()调用?如果外部服务返回 404,我想避免在两者之间再次调用这些任务,而只是重试外部调用?我不能只future.get()用 a包装,retryTemplate.execute()因为它实际上不会再次调用外部服务。

0 投票
2 回答
1100 浏览

spring-mvc - Spring MVC:带有编码 URL 的 DeferredResult:无效的编码序列

我正在使用Spring MVC 4.1.6DeferedResult。它工作正常。但是,如果我确实使用编码的 url 进行了请求,那么我收到了错误。

控制器

要求

错误

在DeferedResult中设置了一些结果后解码 URL 的这个问题,但是HttpServletRequest.getRequestURI()已经从 UTF-8 解码。如何解决?

0 投票
0 回答
657 浏览

spring - 具有长时间运行任务的 Spring MVC DeferredResult 示例

谁能告诉我,如何使用 spring DeferredResult 执行长时间运行的事务任务?浏览了很多网上可用的教程,但文档和示例都没有明确说明非基于 Rest 的应用程序,它不需要长时间轮询,而是在后台运行任务并立即返回 HTTP 响应以及对同一控制器方法的后续调用只是返回结果。有了一些假设,我创建了如下

它会起作用还是有其他更好的方法来处理它?它会是线程安全的吗?是否有可能进入竞争状态?

0 投票
1 回答
1608 浏览

hystrix - Spring Async 方法或事件抛出 HystrixRequestContext.initializeContext() 异常

我们的代码有几个 @Async 方法和 ApplicationListeners。这些类和方法最终会调用具有 @Hystrix 注释的 API 服务。这些调用引发以下异常:

在 Async 方法中添加 HystrixRequestContext.initializeContext() 没有帮助。

0 投票
1 回答
1333 浏览

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