我有一个单身汉需要开始执行计划。以下是代码:
public enum Service{
INSTANCE;
private Service() {
startAutomaticUpdate();
}
private void startAutomaticUpdate() {
try {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleAtFixedRate(new AutomaticUpdate(), 0, 15, TimeUnit.MINUTES);
} catch (Exception e) {
LOG.error(e.getMessage() + "Automatic update not working: ");
}
}
//Makes a call to a webservice that updates a static variable.
private void getTemplateNames(){...}
private class AutomaticUpdate implements Runnable {
public AutomaticUpdate() {
}
@Override
public void run(){
try{
getTemplateNames();
}catch(Exception e){
LOG.error("Error in automatic update: "+e.getMessage());
}
}
}
我不确定何时或是否应该调用执行器的关机方法。我使用的是JEE5,所以我不确定仅仅取消部署应用程序是否会自动执行关机,或者我是否在浪费大量时间,创建大量线程,并且没有杀死它们。
-编辑-
我会再补充一些信息,以防万一。
整个应用程序是一个RESTful web应用程序,使用Jersey作为ServletContainer。
你说的是JEE5?你为什么要重新发明轮子
只需使用@附表
和@Startup
创建一个EJB
@Singleton
@Startup
public class TaskSingleton {
@Schedule(second = "0", minute = "*/15", hour = "*")//This mean each 15:00 minutes
public void getTemplateNames() {
// YOUR TASK IMPLEMENTATION HERE
}
}
不,你不是说JEE5投诉服务器:(
使用ServletContextListener进行实现。我在这里写了一些这样的答案,这是同样的想法,它确实适用于这里。
问题内容: 我的应用程序需要执行以下操作: 打开一个,并获取基础(通过) 根据以上内容创建新对象 到目前为止,我只需要一个,所以我过去通过调用原始流(即,我调用的流)来关闭它。我之所以使用它,是因为某些Android API方法具有此类参数。 现在我将同时拥有更多对象,什么时候关闭?(我的猜测:何时所有对象都关闭了?) 问题答案: 我相信你是对的。小型测试表明,在关闭后,该变得无效。请注意,如果有
我不想更改端口号,但收到异常“exception in thread”main“java.net.BindException:Address already in use:JVM_Bind” ServerSocket服务器=新服务器套接字(1234180);
问题内容: 我想知道如果不手动关闭流,何时关闭。我的意思是,如果引用的范围不再存在,流将被关闭吗? 请考虑以下示例方案。 在这里,一旦完成流处理,我将退出,但是反过来将继续执行该程序的程序不会终止,而是继续进行其他操作。 我没有关闭溪流。一旦对A类的引用范围结束,它会自动关闭吗?(即何时结束)?GC会照顾吗?另外,我读到,一旦流程结束,流将关闭,并且系统释放为其他进程保留的所有资源。我们如何检查流
我正在尝试用PDFBOX填充重复的表单。我正在使用树状图并用单个记录填充表单。pdf表格的格式是在第一页列出六个记录,在第二页插入一个静态页。(对于大于6条记录的树映射,该过程重复)。Im获得的错误与TreeMap的大小有关。这就是我的问题所在。我不明白为什么当我用35个以上的条目填充TreeMap时,我会得到以下警告: 2018年4月23日2:36:25 AM org.apache.pdfbox
问题内容: 在Swing中,您可以简单地用于在关闭窗口时关闭整个应用程序。 但是,在JavaFX中找不到等效项。我有多个打开的窗口,如果一个窗口关闭,我想关闭整个应用程序。用JavaFX做到这一点的方法是什么? 编辑: 我了解可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作才能终止整个应用程序? 类中定义的方法不执行任何操作。 问题答案: 当最后一个关闭时,应用程序自动停止。目前,您的类
问题内容: 我一直在对我们的一个宠物项目进行代码审查(通常使用诸如FindBugs之类的工具),并且FindBugs将以下代码标记为错误的(伪代码): 错误是此代码可能不会释放资源。我发现ResultSet和Statement没有关闭,所以我最终将它们关闭: 但是我在许多项目(来自许多公司)中遇到了上述模式,没有人关闭ResultSets或Statements。 关闭连接时,是否关闭了Result