问题标签 [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 - 在 Spring 调度程序和 JMS 之间选择哪一个?以及它们之间的区别
我正在使用 Spring 调度程序和 JMS,哪一种是更好的调度方法。
spring-boot - 异步和共享的兔子模板
我有如下的队列配置
我有异步配置
在我的异步方法中,我使用的是 amqp admin 和 rabbit 模板 bean。因此,根据配置,我将在最大执行任务时有 10 个线程,一段时间后我发现应用程序挂起并使用执行器进行转储,我在下面的信息中找到,似乎从行号使用 rabbit 模板/amqp 管理 bean 时出现死锁。这种方法有什么问题,或者如何确保多个线程可以访问那些兔子 mq bean。
版本:Spring Boot 1.4.0.RELEASE,Java 8。
我的服务是这样的
____________________________________________________________________________-
新踪迹
java - Spring @Async 每秒速率
@Async
实现每 Y 毫秒/秒执行 X 次的方法的最佳方法是什么。
我要求 Amazon SES 每秒仅发送 14 封电子邮件,我正在使用 Spring 的 @Async 注释异步执行此操作,但据我所知,我只能设置最大池和最大队列大小,而不能设置速率。
这是我所拥有的:
接着
spring - 异步 Bean 初始化
特定 bean 的初始化需要执行网络连接。这可能需要一些时间,并且不必要地阻止已经很长的启动几秒钟。
有什么方法可以让我的 bean 即使在它退出构造函数之后表示它还没有初始化,然后,当它准备好时,向上下文发出信号,它现在已经准备好并且它的状态应该移动到“已初始化” .
spring-boot - 在spring boot中使用ThreadpoolExecutor的jdbc连接池
我有一个通过多个数据库运行的应用程序,并且每个数据库对所有表运行选择查询并将其转储到 hadoop。
我的设计是一次创建一个数据源连接,并使用获得的连接池在多个线程中运行选择查询。完成此数据源后,关闭连接并创建新连接。
这是异步代码
这是来电者
我想知道这是否是正确的方法,或者做任何我缺少的开箱即用的现有/优化解决方案。我不能使用 spring-data-jpa,因为我的查询很复杂。
谢谢
spring-boot - Spring Boot 异步方法的问题
我使用 @Async 注释启用了异步方法。有时我看到SimpleAsyncTaskExecutor线程数呈指数增长。对这种行为有任何想法吗?
java - JUnit 测试 Spring @Async void 服务方法
我有一个 Spring 服务:
我对此进行了集成测试SomeService
:
这是问题所在:
- 如
SomeService.asyncMethod(..)
用@Async
and注释的那样 - 由于
SpringJUnit4ClassRunner
遵守@Async
语义
该testAsyncMethod
线程会将调用分叉someService.asyncMethod(testData)
到自己的工作线程中,然后直接继续执行verifyResults()
,可能在前一个工作线程完成工作之前。
在验证结果之前如何等待someService.asyncMethod(testData)
' 完成?请注意,如何编写单元测试以使用 Spring 4 和注释验证异步行为的解决方案?不要在这里申请,因为someService.asyncMethod(testData)
return void
,而不是 a Future<?>
。
java - @Scheduled 方法中的 Spring @Async 方法调用
我正在使用 Spring Boot@EnableScheduling
和@EnableAsync
.
我有一个用@Scheduled
. 我还有一些方法,用@Async
.
现在我在方法中调用这些@Async
方法@Scheduled
并在异步方法中打印出当前线程的名称。我看到的是它们都有相同的线程名称,实际上是运行该@Scheduled
方法的线程。
我没有看到异步方法执行。这里有什么问题?
这是我的应用程序启动类
这是我的调度程序类
输出
线程调用的方法一:pool-1-thread-1 于 2017 年 4 月 4 日星期二 16:32:27 IST
线程调用的方法二:2017 年 4 月 4 日星期二 16:32:27 的 pool-1-thread-1
线程调用的方法三:2017 年 4 月 4 日星期二 16:32:27 的 pool-1-thread-1
spring-boot - Spring Security @Preauthorize 和 @Async
当我从 UI 调用时,我有@PreAuthorize("hasRole('ADMIN')")
检查方法(这将需要大约 2 到 3 个小时,同时会话即将过期)我正在获取SecurityContext
as null
.
试过了MODE_INHERITABLETHREADLOCAL
,但我仍然遇到同样的错误。
我也尝试了以下代码:
但我仍然遇到同样的错误:
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException:在 SecurityContext 中找不到 Authentication 对象
spring - Spring上的Async Rest方法没有异步执行
我正在运行启用了异步配置的 Spring Boot。
这是休息控制器:
这是日志输出:
我期待在“/getLogCompacto -> Callback -> onSucess”之前看到“/getLogCompacto -> Fim”。我对吗?我错过了什么?
logRepo.getByCdLogGreaterThanAndCdFilial 看起来像这样:
异步配置:
谢谢!