问题标签 [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.
java - 使用 java 8 运行 CompletableFuture 方法时出现问题
我有一个 Spring Boot 应用程序,我已经使用 jhispter 生成了该应用程序,我有一个具有如下预定方法的 Spring 服务:
此方法多次调用routerService.checkRouterStatusAsync()
,如下所述。(我不需要等待这个方法的结果)
奇怪的是,该方法checkRouterStatusAsync
的任何内容都没有出现在日志中。
这只发生在我的生产服务器上,它在本地有效。在双方(本地和生产中),我都安装了 Java 8。
我使用命令运行我的应用程序java -jar {myPackage}.war
。
任何人都可以帮助我吗?
java - 无法拦截 Spring @Async
我有一个用@Async
. 此方法不在控制器中。我想在线程执行完成后拦截线程,以便清除某些 ThreadLocals。
我已经调查过了AsyncHandlerInterceptor
,但是当控制器收到请求而不是在@Async
执行之前和之后,这会被击中。
我想要的是一个像CallableProcessingInterceptor这样的拦截器,但是用于@Async
操作。
spring - spring boot asynctask 处理对象数组
我的要求是从 http 请求中获取对象列表,我需要响应 202 并安排我的对象数组进行并行处理。
在我的示例中,我可能有 1000 名员工,并且我想并行处理 10 x 10,每个员工的业务逻辑可能需要 5 到 10 秒。
使用我上面的代码,它分配给异步任务,但异步任务正在一项一项执行。那么在这里我需要再创建一个 Async 任务并分配员工吗?还是异步任务有任何其他方式来处理列表?
spring-boot - spring异步任务在调用之前获取que使用情况
我正在使用异步任务处理一些大请求,我的详细信息如下
在这里我得到用户列表,它可能包含 50 个用户,所以在发布到异步任务之前我想知道我有足够的队列容量来容纳 50 个线程,如果没有,我必须返回调用者说我的服务器很忙。
那么如何获得当前的 que 使用情况?
java - 是否可以将任务重新提交给 Spring @Async 方法?
我有一个带有注释的 Spring 方法@Async
该方法调用远程服务,该服务偶尔会超时。有没有办法捕捉超时并在@Async
N 秒后将任务重新提交给方法?
我怀疑从内部调用带注释的方法会起作用,因为 Spring 使用切入点来拦截调用。
我能想到的唯一方法是重写AsyncExecutionAspectSupport.handleError
以重建 instanceof MethodInvocation
,然后调用它的副本
AsyncExecutionInterceptor.invoke
让我指定延迟。
还有其他方法吗?也许有人已经这样做了?
旁白
我可以想象一个解决方案,通过该解决方案@Async
扩展为指定重试案例,其方式与 Spring 中管理事务的方式非常相似,但这比上述理论解决方案更基本!
java - Spring @Async 中的默认值是什么?
你能告诉我 Spring 的默认参数是什么,@Async
ThreadPoolTaskExecutor
或者我如何找到自己的参数?
maxPoolSize、corePoolSize 和 queueCapcity 的默认值是多少?
我应该重写它们以改进我的应用程序还是使用默认值就可以了?
java - spring boot rest api上的异步-注释应仅在服务上或控制器上
我必须在 Spring Boot 中实现一个具有异步功能的方法:
我对注释异步的位置有点困惑,基本上我的休息控制器如下:
服务类如下:
我已按如下方式配置了我的异步 bean:
我的问题是 SendMailServiceImpl 上的注释 @Async 是正确的还是我需要将它添加到控制器的方法 sendMailCon 中?
java - Spring:具有基于日期时间的队列的任务执行器服务
我想为任务实现一个执行器服务,该服务将在一段时间后开始运行,例如假设我有这些任务;
当我将所有这些提交给执行者服务时,我应该得到以下结果;
(5 分钟后):
......任务 3 正在运行......
(10 分钟后)
......任务 1 正在运行......
(15 分钟后)
......任务 2 正在运行......
(30 分钟后)
...任务 4 正在运行...
我可以找出如何实现这一点。你能帮帮我吗?
spring-boot - 在正在运行的应用程序中调用 Scheduled Async bean 方法
我有一个计划每天运行一次的 Async 方法:
当应用程序已经运行时,是否有一种方法可以触发doDailyTask()
测试,也许是通过使用 Groovy 和反射做一些聪明的事情?
我想我总是可以在我的文件中将 cron 属性调整为 1 分钟application.properties
,然后重新启动应用程序 - 但只是想知道是否有更智能的方法?
spring-boot - 如果我在 spring-boot 中以服务级别提供 @Async 将不起作用
我在控制器中自动装配服务。在服务中,我有一个需要抛出异常和数据库更改的场景。所以,我尝试了@Async
这不是创建新线程。但是,如果我在回购中给出,它会起作用