Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee @javaee中的日程注释_Jakarta Ee_Annotations_Ejb_Scheduled Tasks - Fatal编程技术网

Jakarta ee @javaee中的日程注释

Jakarta ee @javaee中的日程注释,jakarta-ee,annotations,ejb,scheduled-tasks,Jakarta Ee,Annotations,Ejb,Scheduled Tasks,我使用以下注释每5分钟调用一次无状态会话bean: @Schedule(second = "0", minute = "0/5", hour = "*") 我按预期工作,只是几天后它就停止了。我想可能有一个默认的生存期,我不知道如何覆盖它 请帮助我将计划程序配置为无限期运行。若要知道对象是否有过期日期,可以使用getTimers()返回该计时器的对象,然后使用此方法GetTimeRestaining()了解对象是否有过期日期 无论如何,您可以使用此注释@Timeout在发生超时时执行某些操作:

我使用以下注释每5分钟调用一次无状态会话bean:

@Schedule(second = "0", minute = "0/5", hour = "*")
我按预期工作,只是几天后它就停止了。我想可能有一个默认的生存期,我不知道如何覆盖它


请帮助我将计划程序配置为无限期运行。

若要知道对象是否有过期日期,可以使用getTimers()返回该计时器的对象,然后使用此方法
GetTimeRestaining()
了解对象是否有过期日期

无论如何,您可以使用此注释
@Timeout
在发生超时时执行某些操作:

@Timeout
public void timeout(Timer timer) {
    System.out.println("do something ... ");
}
您可以在此处打印日期以了解超时发生的时间


另一件事,你正在使用“自动定时器”它是在ejb jar.xml上配置的,所以请尝试查看ejb jar.xml以查看是否有过期日期。

在Glassfish中的配置->服务器配置->ejb容器->ejb Timeservice新属性:重新调度失败计时器=true

您的@Schedule注释看起来正确,所以,您首先应该检查日志,看看在您计划的方法中是否有异常


根据规范,如果在计时器方法中引发异常,将再次调用该方法,如果再次失败,则计时器将关闭

注释看起来是正确的(注意,second=“0”是默认值,无需指定),并且不应有最长生存期。您正在使用哪个应用程序服务器?日志中是否有任何错误表明它可能失败?应用程序是否可能在自动创建的计时器上调用Timer.cancel?我使用Glassfish v3,但在日志中找不到错误。