Seam 2.2,Jboss 6.1,休眠3.5.6和MSQL Server 2008
并具有这样的功能。
public void deliverFile() {
EntityManager jobbEntityManager = (EntityManager)Component.getInstance("jobbEntityManager");
JobbStatusInterface jobbStatus = new JobbStatus();
jobbStatus.setStatus(PluginStatus.INITIATED);
jobbEntityManager.persist(jobbStatus);
/**
Code here to save a file that takes a minutes
**/
jobbStatus.setStatus(PluginStatus.DONE);
jobbEntityManager.flush();
}
public void checkJobb(){
EntityManager jobbEntityManager = (EntityManager)Component.getInstance("jobbEntityManager");
jobbEntityManager.createQuery("from JobbStatus", JobbStatus.class).getResultList();
}
我每10秒钟对checkJobb进行一次民意调查,因此如果执行了deliveryFile()函数。
checkJobb将upp排队并在查询处停止,因此,当deliveryFile()函数完成时,它会一次完成所有6个checkJobbs()。
即使我直接从数据库中选择它,它也被锁定并在deliveryFile()完成后完成查询。
无论如何有没有这样做,所以我可以在执行deliveryFile的同时做我的checkJobb()吗?
最佳答案
不确定使用以上代码要实现什么。如果要检查是否通过在两者之间加载作业状态来启动作业,则可能无法执行。由于尚未提交数据,并且您正在其他功能中使用其他会话,因此您可能看不到数据。
仅状态的最后一个值将被提交到数据库。
关于sql-server - hibernate 表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10141138/