有 Java 编程相关的问题?

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

JavaSpring服务周期性任务

假设有一个SpringBootWeb应用程序,它有两个类映射为@Controller和@Service。服务被注入控制器的字段。我需要我的服务每秒运行一次任务来更新一些外部数据。这个代码有什么问题吗

@Component
public class MyService implements Runnable{
    public MyService() {
        new Thread(this).start();
    }

    @Override
    public void run() {
        while (true) {
            try {
                Thread.sleep(1000);
                // operations here
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    尽管有很多方法可以使用job或spring任务调度器创建任务,但下面是一种简单的方法

    下面的任务将每秒运行一次

    Timer timer = new Timer();
        timer.schedule(new TimerTask() {
    
            @Override
            public void run() {
                System.out.println("hello");
            }
        }, 0, 1000); // o is delay time after which it starts, 1000 is time interval
    

    或者您可能希望引用here来实现spring任务调度器