问题标签 [workmanagertaskexecutor]

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 回答
306 浏览

java - 在 WorkManagerTaskExecutor 中获取 TransportContext null

我正在尝试获取 TransportContext

(来自 TransportContextHolder.getTransportContext();)

能够在正常流程中获取上下文、连接和 HttpServletRequest。

但我有一个场景,使用 Spring WorkManagerTaskExecutor 创建并行调用)。在新线程中,我试图获取返回 null 的 Spring TransportContext。

有人可以帮助如何在 WorkManagerTaskExecutor 的概念中获取 TransportContext。

0 投票
1 回答
908 浏览

java - Java Spring Framework: Multiple Threads and TaskExecutor

Setup: Apache Tomcat 8 Web Server/Java Spring Framework/MVC

Background: I have multiple servers attached a load balancer. Every time the load balancer forwards a request to a web server, the server pushes the request onto a remote queue.

Now, I'm trying to set up multiple threads on my web application, so that these threads can be used to process the requests on the remote queue (retrieve them from the queue and then start working on them).

In the past, I'm only working on a single server instance. The server would receive requests directly from the front end in the Controller, and then it would generate multiple threads to handle theses requests in parallel. All of the calls (thread pool creation and others) are triggered once the first request is received (Requests coming in --> Create threads --> Process the requests).

Problem: Now, instead of creating threads after the request comes in, I want to create the threads once the web application starts running, so that it can start pulling requests from the remote queue right away. Simply put, I would like to decouple thread creation from request handling. Ideally, I would like to have these threads (a fixed number of them) running all the time, pulling request from the queue whenever they are idle. And in the Controller, when ever the server receives a request, I'm just going to send it to the queue.

This is my first time working with the Spring framework, and so I'm not sure what would be the best approach for doing what I need. The Controller (the method that handles the incoming request) was the only program entry point that I know of. Therefore, I don't know how and where I can create these threads on application startup. I want the threads to be very robust, because they are going to do some heavy processing on the requests.

The following are some of the ideas I came up with: - I'm thinking about using TaskExecutor to create the threads that I need when the context is loaded (not sure if this is a good and robust approach). If I were to use TaskExecutor, how should I manage the life cycle of these threads and other resources? - During my research, I also came cross WorkManager. I'm not sure if it does what I need.

Any suggestions and pointers are appreciated!

0 投票
2 回答
822 浏览

apache-spark - 客户端提交的每个应用程序可以在每个节点管理器中启动多少个 YARN 容器?

容器是 YARN 中的一个抽象概念。在 YARN 上运行 Spark 时,每个 Spark 执行器都作为 YARN 容器运行。每个客户端提交的应用程序可以在每个节点管理器中启动多少个 YARN 容器?

0 投票
0 回答
585 浏览

java - Spring4 / Java 8 / Weblogic 12 - WorkManagerTaskExecutor.schedule 递归调用导致 StackOverFlowError

我们已经将我们的企业软件从 Java 7 迁移到 Java 8,并且随之将 Spring 更新到了 4.3.4 版本。从那时起,部署失败,因为由于 StackOverflowError 无法初始化 bean 之一:

如您所见,方法 schedule() 被递归调用,导致堆栈溢出。该应用程序部署在 Weblogic 12.1.3 版本上;这是来自 WorkManagerTaskExecutor.schedule() 的代码片段:

所以这应该将调度调用委托给目标 WorkManager 对象。然而,根据我们的调试分析,WorkManagerTaskExecutor内部的私有成员workManager已被初始化为WorkManagerTaskExecutor类型的实例,即this.workManager.schedule(work); 执行时,它正在调用WorkManagerTaskExecutor.schedule(),导致递归调用。

Weblogic 的目标 WorkManager 在部署描述符中设置如下: ...

...

...

在 Spring 应用程序上下文中:

为什么WorkManagerTaskExecutor 中的 workManager 再次用 WorkManagerTaskExecutor实例初始化,导致递归,我们严重想不通。社区能帮忙吗?

0 投票
1 回答
701 浏览

java - jboss线程中的commonj workmanager不等待完成

我们在 jboss EAP 6.4.9.GA 和 jdk 1.7 中部署了 commonj workmanager rar。我们正在使用 workmanager 引用来创建多个线程以防多个文件上传。我们为 workmanager 设置了默认配置,最大线程、核心线程、队列长度的值为 50。我们在spring xml中定义了依赖为

在 Invoker 类中,提交工作

我看到的是 taskexecutor 没有等待任务完成,在下一步中,我们试图从 Work 对象中获取结果,它正在抛出异常

令人费解的是,在本地服务器上使用 jboss 6.2 服务器和 jdk 1.7 的设置相同。

你能告诉我可能出了什么问题吗?

我还添加了 WorkListener

我在监听器中获取 workAccepted 和 WorkStarted 的日志。workmanager deos 不等待线程完成。如果有任何替代方法可以使用监听器来实现等待线程完成?

0 投票
2 回答
15618 浏览

java - 使用spring boot在后台运行进程

如何使用 Spring Boot 在后台运行某些进程?这是我需要的一个例子:

0 投票
1 回答
119 浏览

concurrency - Weblogic工作管理器固定线程池服务

我最近将 weblogic 工作管理器转换为 java concurreny 固定线程池。我遇到了 spring 的工作管理器任务执行器。你能给我一个为什么它使用直接线程池的原因吗

0 投票
1 回答
31 浏览

android - 工作管理器类在执行 doWork() 方法时遇到问题

首先让我纠正一下:

Work Manager :可以定义的最小重复间隔为 15 分钟(与 JobScheduler API 相同)。 如果这不正确,请告诉我。

我创建了以下类来执行定期工作请求:

下面是我的工人班。请检查 :

在我的活动中调用它如下:

您可以注意到,目前我只是将 toast 显示为我的工作。我想检查这是否有效?

但是吐司没有显示。

0 投票
1 回答
165 浏览

spring - 使用 Spring @Scheduled 的 WebSphere 工作管理器

如何@Scheduled在我的 servlet 中将 IBM WebSphere 工作管理器与 Spring 注释一起使用?

Spring 提供了WorkManagerTaskExecutor. 它允许按照 WebSphere 文档此 SO 答案中的描述配置工作管理器。但是,我看不到与@Scheduled注释的关系,也找不到任何文档它是如何在内部工作的。

我的目标是以一种方便的方式(由 给出@Scheduled)配置计划任务,但我需要由 WebSphere 管理由计划程序创建的任务线程。

编辑:DefaultManagedTaskExecutor在我混淆的原始问题WorkManagerTaskExecutor中,后者被弃用,而赞成第一个。现在我知道这WorkManagerTaskExecutor是 Java EE 6(因此是我们的 WebSphere 8.5 环境所必需的),而DefaultManagedTaskExecutor属于 Java EE 7 并且确实可以配置为@Scheduled使用@EnableScheduling注释记录。