java - 如何在 Apache tomcat 服务器启动时自动定期运行我的 java 函数?

标签 java function jsp tomcat setinterval

<分区>

我有一个 java 函数可以检查和修改我的 SQL 数据库中的值以避免错误,我需要它在服务器启动和重新启动时自动执行。我创建了一个 jsp 页面来调用这个函数作为 jsp 支持“setInterval”,我可以在每 3 分钟后自动运行它以从我的数据库中删除错误,现在我需要它在服务器启动时自动执行。任何人都可以指导我吗?

以下是我的jsp代码:

setInterval(function(){Autolf();},60000);

function Autolf()
{

$.post('autolgfn.jsp',
        {
    abc:1
        },
        function(response,status,xhr)
        {
            alert(response.trim());

        });

}

以上代码从连接到数据库的 java 页面调用函数。 请帮助我在服务器启动时自动运行它,并在每 3 分钟后继续运行。提前致谢

最佳答案

你可以写一个ServletContextListener使用 ScheduledExecutorService(或 Timer)在 contextInitialized 方法中启动您的进程并在 contextDestroyed 中停止它方法。

它可能看起来像这样:

private volatile ScheduledExecutorService executor;

public void contextInitialized(ServletContextEvent sce)
{
    executor = Executors.newScheduledThreadPool(2);
    executor.scheduleAtFixedRate(myRunnable, 0, 3, TimeUnit.MINUTES);
}

public void contextDestroyed(ServletContextEvent sce)
{
    final ScheduledExecutorService executor = this.executor;

    if (executor != null)
    {
        executor.shutdown();
        this.executor = null;
    }
}

关于java - 如何在 Apache tomcat 服务器启动时自动定期运行我的 java 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24575428/

相关文章:

function - 什么是Lua国家?

java - jSTL与spring框架3的问题

java - 在java中的arrayList中生成动态对象名称

java - 为什么 Java JPackage 在两个地方安装 Windows dll 文件?

java - 我应该保持数据库连接打开以处理每个请求吗?以及如何以正确的方式做到这一点

java - org.hibernate.AnnotationException : Unknown Id. 生成器:GenreIdGenerator

Javascript:我怎样才能 'announce' 一个函数而不调用它?

function - 无法在 map 函数中捕获异常

jsp - 你如何覆盖 Struts 2 消息?

java - 登录页面输入正确的用户名和密码