有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Spring计划注释和更新视图

我有一个关于如何正确有效地使用Spring的计划注释的问题。基本上我想做以下几件事;我有一个web应用程序,计划每30分钟用最新的\fresh数据更新一次地图,然后保存到缓存中。我已经在为我的网站使用Spring了,所以我认为这个注释非常适合使用,而且很容易,但是我有点困惑如何恰当地调用这个预定的方法。我知道创建界面\服务是一个步骤,需要创建一个界面\服务并使用它,但是在您运行完后台任务后,这些更新的信息如何返回到视图中?从这个意义上说,我的应用程序将更新地图

我以前在Java和Android框架中使用过常规异步任务,其中数据在另一个线程上处理,然后可以访问\或在内部方法中返回,但我正在努力找到一种方法,使我的方法自动启动,同时将数据返回到视图。我已经阅读了Spring文档并查看了各种教程,但我缺少了一些脱节之处。几乎所有在打印到控制台后使用预定注释的示例都围绕着我的中心问题。如何从该自动运行函数获取数据并返回到视图?下面是我拥有的非常有限的代码

如果您能帮助我们解释一下这是如何工作的,我们将不胜感激。我觉得一旦我“明白了”或者明白了如何去做,其实一点也不难。只是有点绕不过去

public class CallDBSteps {

    @Scheduled(cron="*/2 * * * * MON-FRI")
    public void updateMapItems(){
        System.out.println("Started cron job");
        /**
         * Call method 1
         * Call method 2
         * Call method 3
         * Return how? return to view, what?
         */

    }
}

共 (2) 个答案

  1. # 1 楼答案

    要以30分钟的间隔将数据从服务器发送到客户机,必须保持浏览器和服务器之间的连接(连接打开),而在我们发出http请求时,情况并非如此。所以,只有在r和webSocket都连接的情况下,才能在特定的时间间隔从服务器向客户端发送任何内容。io为此提供了解决方案。 然而,在您的情况下,我认为轮询(ajax调用)将符合要求

  2. # 2 楼答案

    如果你的网站是基于Http/1.1的,你可以用ajax对服务进行轮询以获取新的数据。否则,请将Http/1.1更新为Http/2.0或Web套接字