当前位置: 首页 > 知识库问答 >
问题:

我试图在循环中每10毫秒向数据库插入数据。所以我怎么能在每次插入[重复]之间等待

文华美
2023-03-14
 @RequestMapping(value="/save",method = RequestMethod.POST)    
        public String save(@ModelAttribute("emp") Employee emp){    
            for(int i=0;i<5;i++) {
            dao.save(emp); 
            }
            return "redirect:/viewemp";//will redirect to viewemp request mapping    
        }    

在这里,我想在方法之后等待10毫秒:

dao.save(emp); 

共有1个答案

蒯安平
2023-03-14

如果要暂停,请使用java。util。同时发生的时间单位

TimeUnit.SECONDS.sleep(1);

睡一秒钟或几秒钟

TimeUnit.MINUTES.sleep(1);

睡一会儿。

由于这是一个循环,这就带来了一个固有的问题——漂移。每次你运行代码然后睡觉,你都会从运行中漂移一点,比如说,每秒钟。如果这是一个问题,那么不要使用睡眠

此外,sleep在控制方面也不是很灵活。

对于每秒或每延迟一秒运行任务,我强烈建议使用ScheduledExecutorServicescheduleAtFixedRatescheduleWithFixedDelay

例如,要每秒运行方法myTask(Java 8):

public static void main(String[] args) {
    final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
}

private static void myTask() {
    System.out.println("Running");
}

在Java 7中:

public static void main(String[] args) {
    final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            myTask();
        }
    }, 0, 1, TimeUnit.SECONDS);
}

private static void myTask() {
    System.out.println("Running");
}
 类似资料:
  • 我从复选框中得到了这个数组 PHP查询 我希望插入数组中的数据,而不是在每一行上插入数据。我希望数据以逗号分隔,如data1、data2、data3,然后插入它。

  • 几个月前,我开始编写我的第一个动态页面...从零开始学习前端和后端的一切。 这里和那里都有一些颠簸,所以这是又一个。 这是一个房地产页面,人们可以在其中添加物品和图片。我读了一些关于数据库中图片问题的著名文章。我只是决定使用DB,因为我需要从某个地方开始。 我用这个教程开始。几个小时后,瞧,我能够在一个真正的服务器中插入图片。非常高兴。 但问题来了。图片需要附加到用户名(或电子邮件)上。当您尝试插

  • 问题内容: 我想在循环中将一组数组插入数据库(HANA)中,我的代码如下: 但这是行不通的。我尝试过 不支持此返回方法的Connection创建数组。 我的表架构看起来像 我也希望我的数据类型为整数数组。感谢您的帮助。 问题答案: 这里已经在SO上讨论了“ ARRAY插入HANA”主题。HANA仅支持通过ARRAY()函数存储数组。此函数不将列表作为参数,而仅将单独的元素作为参数。 所以,代替 你

  • root-context.xml文件是: servlet-context.xml文件是: 我的@Entity类是: 控制台输出为:

  • 因此,我一直在做一些研究,我需要编写一个语句,将唯一的客户端名称插入到服务器上的表中。然而,数据库的默认标准中已经有数千个客户端,在插入新客户端时,我们需要在尝试将其添加到系统之前检查它们是否已经存在。 我的问题是,最好/最快的方法是什么?在clients表上运行一个简单的select查询(按ASC排序),并对结果进行二进制搜索或其他操作,或者只执行类似于下面的SQL查询,会更好吗? 这是一个缓慢

  • 这是我的代码: 有人能知道这段代码中的错误是什么,请修复它。