问题标签 [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 @Async 延迟
我正在尝试使用 Spring 定义一个 Async 方法,该方法需要在同步函数结束时调用,如下所示:
我需要在开始执行之前添加 10 秒的延迟,asyncFunction
并且希望避免添加Thread.sleep()
. 我还探索了@Scheduled
注释,但它似乎不适用于one-time
计划任务。使用 Spring 实现这一目标的最佳方法是什么?提前致谢。
spring-boot - Spring Web Flux 和 Spring Async 方法有什么区别?
我是 Spring Reactive 编程和 Spring Async 方法的新手。我有个疑问。通过使用 spring webflux,我们可以进行反应式编程,这样我们就可以执行一段特定的代码,而我们当前的线程不需要等待它完成执行。同样,通过使用@async 方法,我们可以使特定的代码在不同的线程中运行,这样我们当前的线程就不会等待。
那么在这些情况下,webflux 和 async 方法有何不同以及何时使用哪个?
java - Spring boot:使用异步方法作为同步方法
我有一些场景
- 调度程序(重复调用)应该调用一个异步函数,比如 fun()。
- 控制器应该调用相同的函数 fun() 并根据成功完成返回结果(通过检查异常)
请给我一些带有适当符号的骨架。
java - Spring Boot异步线程未完成任务
我一直在研究一个爬虫,我必须在某个特定的服务器上发出 1000 多个请求。到目前为止,它运行良好。但是现在异步任务没有完成。这是我的示例代码。
对于前 150 到 200 个 url,它工作正常。但过了一段时间,我可以看到日志卡在Now Executing之后什么都没有发生。有一段时间,该过程在 1 小时后才恢复。任何人都可以在这方面帮助我。我不知道为什么它会这样。它不应该在完成任务之前停止。任何帮助,将不胜感激。
java - 如果任何线程发生异常,则中断所有线程
我有一个方法名称someTask
,我必须调用 100 次,并且我使用如下异步编码。
如果在执行时任何线程发生异常,someTask()
我想中断所有当前线程并阻止未来线程执行。处理这个问题的最佳方法是什么?
更新:我正在使用ThreadPoolTaskExecutor
.
java - 在不配置 JobLauncher 的情况下异步启动 Spring 批处理作业
我知道您可以通过配置JobLancher
with来异步启动工作TaskExecutor
:
但是,鉴于我有以下服务作为示例:
和调用process()
工作的控制器:
如何process()
在后台异步运行,以便能够response
立即返回创建?我已经TaskExecutor
在我的应用程序中创建了一个异步 bean。我只是不确定如何调用process()
异步。我需要整个process()
异步,而不仅仅是作业的运行。
spring-boot - 如果同时使用 @EnableAsync 和 @EnableWebSocketMessageBroker,则 Spring boot 2.2.6 不会引导
我正在尝试使用 Web 套接字和@Async
任务。
所以我创建了2个配置类:
我还有一个服务注入AsyncTaskExecutor
:
在此之后,我的应用程序无法启动,并报告此错误:
我该如何解决这个问题?
spring-async - 是否可以在 Spring[5] 中支持同步和异步应用程序事件
在应用程序中,我试图触发同步和异步事件。
这样做很好吗?
java - Spring boot @Async 方法实际上是如何异步/非阻塞的?
下面的例子取自Spring 的 Getting Started Creating Asynchronous Methods。
AFAIK 我对计算机科学中异步方法的了解 -它应该立即返回。它应该是非阻塞的。
所以让我们在 Spring 的某个地方说我的代码findUser()
是这样调用的:
这实际上会阻塞。它会阻塞服务上的另一个线程,Executor
但由于 Thread.sleep(1000L)
. 正确的 ?
那么这个异步如何?
我的意思CompletableFuture
是要获得对未来将要完成的计算的引用。但是在这里,当我回到完整的未来时,计算已经结束,即。我们正在使用 CompletableFuture.completedFuture(results)
.
那么CompletableFuture
在这种情况下有什么意义呢?我的意思是,如果我要阻塞并仅在我的计算结束并且我得到结果时返回,我还不如只返回结果而不是 CompletableFuture
.
这真的是非阻塞/异步的吗?
我在这里发现的唯一非阻塞方面是卸载到不同的线程,仅此而已。
我在某个地方出错了吗?我错过了什么?
谢谢。
spring-boot - Spring Async 获取当前 Executor
我Async
通过实现AsyncConfigurer
和覆盖getAsyncExecutor
来定义我的Executor
. 现在我想公开一个端点,以返回 Async 使用的 Executor 的当前队列大小、线程数等。但是我找不到一种方法来查找或自动连接 Async 使用的当前执行程序。我在想我可以定义一个bean,该getAsyncExecutor
方法和我的报告服务都将使用它。但我想知道是否有一种更简单/更合适的方式可以与 async 交互以获取当前的Executor
.
我目前的配置: