根据quarkus指南-所有配置选项,参数< code > quar kus . vertx . worker-pool-size 允许我配置“工作线程池的线程大小”。
是否可以像这样配置特定QUKUS Consume事件的池大小:
@io.quarkus.vertx.ConsumeEvent(value = "my-consume-event", blocking = true)
public void start(String value) {
// do the work
}
我想设置线程的数量,可以处理这个my-usene-事件
而不改变全局quarkus.vertx.worker-pool-size
。
在SmallRye Reactive Messaging指南中,有一个我想做的例子。
在这里,我可以使用一个Blocking注释,为其定义一个名称并配置线程池:
@Outgoing("Y")
@Incoming("X")
@Blocking("my-custom-pool")
public String process(String s) {
return s.toUpperCase();
}
为上述工作池指定并发性需要定义以下配置属性:
smallrye.messaging.worker.my-custom-pool.max-concurrency=3
在本例中,我可以配置线程池的大小,该线程池将处理来自<code>我的自定义池</code>的消息。
谢谢
我尝试为< code > @ io . small rye . common . annotation . blocking(" my-custom-pool ")批注设置一个值,但收到以下错误:
The attribute value is undefined for the annotation type Blocking
我正在使用此依赖项:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-vertx</artifactId>
</dependency>
我还在我的 GitHub 帐户上创建了这个项目来做这个测试。
package org.acme;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.jboss.logging.Logger;
import io.vertx.core.eventbus.EventBus;
@Path("/hello")
public class GreetingResource {
private static final Logger LOG = Logger.getLogger(GreetingResource.class);
@Inject
EventBus eventBus;
@GET
public Response hello() {
LOG.info("hello()");
eventBus.send("my-consume-event", null);
return Response
.status(Response.Status.ACCEPTED)
.build();
}
@io.quarkus.vertx.ConsumeEvent("my-consume-event")
// @io.smallrye.common.annotation.Blocking("my-custom-pool")
@io.smallrye.common.annotation.Blocking
public void start(String value) {
try {
LOG.info("before the sleep");
Thread.sleep(5000);
LOG.info("after the sleep");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
您应该能够使用< code > @ io . small rye . common . annotation . blocking 批注:
@ConsumeEvent("my-consume-event")
@Blocking("my-custom-pool")
public void start(String value) {
// do the work
}
并在application.properties
中配置您的池大小:
smallrye.messaging.worker.my-custom-pool.max-concurrency=3
编辑
实际上,@io.smallrye.reactive.messaging.annotations.Block
在用@ConsumeEvent
注释的方法上不受支持。
此外,根据ConsumeEvent在错误的执行器上阻塞线程服务#19911,事件似乎是在默认的Quarkus执行器上执行的。
Microprofile允许从RestClient定义connectionPoolSize,如下所示: 当我在我的项目中设置此属性时,Quarkus会忽略它。我该如何定义它?
问题内容: 为什么在hibernate配置文件中为连接池设置10?size = 1是内置的size。为什么需要增加大小? 问题答案: 来自Hibernate API 文档。 但是,Hibernate自己的连接池算法非常初级。它旨在帮助您入门,不适合在生产系统中使用,甚至不用于性能测试。您应该使用第三方池来获得最佳性能和稳定性。只需将hibernate.connection.pool_size属性替
问题内容: 无论我在分配时给它多大的尺寸,它仅显示固定的尺寸。有可能增加吗? 码: 问题答案: 大小由样式固定。这是一个标准化的接口元素,因此API不喜欢摆弄它。 但是,您可能可以对其进行缩放转换。但是,不确定在视觉上如何影响它。 仅从UI设计的角度来看,通常最好不留这些常见的标准化元素。用户被告知某些元素以一定的大小出现,并且它们表示特定的事物。更改标准外观会更改界面语法并使用户感到困惑。
问题内容: 我正在启动一个Java jar文件,该文件通常需要比默认的64MB最大堆大小更多的文件。256MB的堆大小足以满足此应用的需求。是否有任何指定(可能在清单中?)启动jar时始终使用最大256MB的堆大小?(如果需要,请在下面提供更多详细信息。) 这是我用Java编写的命令行应用程序,它可以进行一些图像处理。在高分辨率图像(大约12兆像素及以上,这并不罕见)上,我收到OutOfMemor
当我们用来谈论核心池大小和最大池大小之间的区别到底是什么? 可以借助示例来解释吗?
我使用的是SpringBoot2.0。3释放。我想增加HikariCP的最大池大小,默认情况下为10。 我试着在带有 spring.datasource.hikari.maximum-池-大小=200 但是它不起作用,因为在日志中它仍然显示最大池大小为10。 我想改变的原因是,我不知怎么地达到了登台的极限,我不知道是什么原因造成的。