blocking EntityManager operations(阻止EntityManager操作)
问题描述
我不想执行阻止操作。
Caused by: java.lang.IllegalStateException: You have attempted to perform a blocking operation on a IO thread. This is not allowed, as blocking the IO thread will cause major performance issues with your application. If you want to perform blocking EntityManager operations make sure you are doing it from a worker thread.
有人知道如何解决此问题吗? 我只有简单的手术。返回10行的单个findAll请求。我把交易交易从没有 我仍然有这个问题。 我正在使用简单实体的Panache。
@GET
@Path("/type")
@Produces(MediaType.APPLICATION_JSON)
@Transactional(Transactional.TxType.NEVER)
public Response get() {
return AlertType.listAll();
}
public class AlerteType extends PanacheEntityBase
{
@Column(name="ATY_ACTIVE")
private String active;
@Column(name="ATY_ID")
@Id
private Long oraId;
@Column(name="ATY_TYPE")
private String type;
}
谢谢
推荐答案
如果您想继续使用非反应性代码,可以在方法get()
上使用@Blocking
注释。它将在工作线程(而不是一个IO线程)上分流计算。
更多信息:
- https://quarkus.io/guides/getting-started-reactive
- https://quarkus.io/blog/resteasy-reactive-faq/
这篇关于阻止EntityManager操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!