我有以下ThreadPoolTaskExecator2配置
<bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10" />
<property name="maxPoolSize" value="25" />
<property name="queueCapacity" value="30" />
</bean>
在我的公共类AdminService中,我有两个方法。
如何将ThreadPoolTaskExecutor插入triggerJob方法,以便在第一个方法中调用executeSql时创建新线程。
在triggerjob中,我有一个基于条件调用executeSql的循环。
我是否需要创建一个私有类,实现runnable,以便ThreadPoolTaskExector可以执行此类,或者是否有可能创建没有runnable的线程?
我的想法是这样的
@Autowired
ThreadPoolTaskExecutor threadPoolTaskExecutor;
void triggerJob(){
for( Object k:Objects){
if(k.equals(something){
//here new thread to be created somehow
threadPoolTaskExecutor.execute(executeSql(k.getSql())
}
}
}
如果你必须这样做,你可以使用org.springframework.core.task.SimpleAsyncTaskExecator
:
<bean id="simpleTaskExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor">
<property name="concurrencyLimit" value="25" />
</bean>
但是创建一个Java线程是昂贵的。通常建议重用线程,即使SimpleAsyncTaskExecutor文档也会说:
注意:此实现不重用线程!请考虑使用线程池TaskExecitor实现,特别是在执行大量短期任务时。
我尝试在每次创建活动时运行以下线程。它第一次工作,但如果我按下后退按钮并尝试再次导航到活动,它总是崩溃第二次。我怎样才能确保这个线程每次都运行成功呢?
我刚刚开始学习oAuth2授权来保护我的API。这个过程相当复杂。我的API是使用泽西和Apache Oltu作为oAuth2授权开发的。现在,可以生成令牌,但是,每次我尝试生成新令牌时,服务器都会创建一个@Application ationScoped bean的新实例。这是我从互联网上获得的bean代码: 这是授权代码: 如您所见,这里有数据库的@Inject注释,在代码的某些部分中调用了ad
问题内容: 实际上,除了扩展Thread类和实现Runnable接口之外,还有哪些其他方法可用? 问题答案: 完全有一种方法可以在Java中创建一个新线程,并将其实例化(要真正 运行 该线程,您还需要调用)。 在Java代码中创建线程的所有其他内容都回到了幕后的这种方式(例如,实现将在某个时刻实例化对象,…)。 有两种不同的方法来 指定要 在该线程中 运行的代码 : 实现接口,并通过它实现的类的实
问题内容: 当我运行以下代码时,两个测试用例都变为现实: 预期的行为 test1-成功 test2-失败(按预期该计数将变为3) 实际行为 test1-成功 test2-成功 为什么junit 与每个测试方法都调用。它是junit中的错误或有意提供。 问题答案: 每种测试方法的新实例 对于每种测试方法,将创建Junit的行为的 新实例。 因此,在您的情况下,这两种方法的变量都将具有value ,因
我刚刚开始Spring Boot并设法在PostgreSQL数据库中创建表。然后,我将一个配置文件添加到我的项目中,该文件将把数据插入数据库。但是,据我所见,代码并没有命中这个配置文件并重新创建表。我试图更改文件中的参数,但这没有任何意义,结果,在运行空记录的每个应用程序上重新创建表(在Java控制台just create table上也可以看到)。那么,我错过了什么? 应用程序.属性: 学生配置
我正在编写一个小应用程序,现在我发现了一个问题。我需要调用一个(稍后可能是两个)方法(这个方法加载一些东西并返回结果),而不会滞后于应用程序的窗口。 我找到了像Executor或Callable这样的类,但我不知道如何使用这些类。 你能张贴任何解决方案,这对我有帮助吗? 谢谢你的建议。 编辑:方法必须返回结果。此结果取决于参数。类似这样: 此方法大约工作8-10秒。执行此方法后,可以停止线程。但我