gpt4 book ai didi

java - weblogic上的EJB调度自动启动

转载 作者:行者123 更新时间:2023-12-01 13:34:22 25 4
gpt4 key购买 nike

我目前有一个 EJB,它有一个每 5 分钟运行一次的 @ 计划,但我只在 ejb 初始化后运行。

问题是您是否可以使计时器在部署后开始运行,而不是等到有对 EJB 的调用才开始运行。

这是我的代码:

@Remote(ServiceRemote.class)
@Stateless(mappedName = "ejb/ServiceEJBSL")
public class ServiceBean implements ServiceRemote {
@Schedule(second="*", minute="*/5", hour="*", dayOfWeek="0-6")
public void autmaticTimer() throws Exception, RemoteException{
System.out.println("do something");
}
}

我在 glasfish 服务器中执行了此操作,但它的工作方式似乎不同。

提前致谢。

最佳答案

您需要GlassFish v3.+,因为此功能是在EJB 3.1中添加的

Automatic timers are created by the EJB container when an enterprise bean that contains methods annotated with the @Schedule or @Schedules annotations is deployed.

@Schedule(minute="*/5", hour="*")
public void automaticTimer() throws Exception, RemoteException{
System.out.println("do something");
}

添加

尝试添加

@Schedule(minute="*/5", hour="*", persistent=false)

因为当 keepstate 设置为 true 时,如果持久计时器已经存在,则不会重新创建。

参见

关于java - weblogic上的EJB调度自动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com