NutzCN Logo
问答 用了quartz来更新一张数据表,但是每次更新完都会有重复记录
发布于 419天前 作者 qq_df433f5d 501 次浏览 复制 上一个帖子 下一个帖子
标签:

我用quartz来定义了一个任务,这个任务就是用SQL从数据库里检索出一些数据,然后用循环遍历插入了一张数据表中,我本地测试时数据插入都是正确的。但是在服务器上,每次每条数据都会有一条重复记录。我看log里SQL取出来的数据是没有重复记录的,但是插入到数据库中就会被double。有可能是什么原因?

    public void execute(JobExecutionContext context) throws JobExecutionException {
        try {
            JobDataMap data = context.getJobDetail().getJobDataMap();
            String taskId = context.getJobDetail().getKey().getName();

            Sql sql = Sqls.create("SELECT xxxxx FROM xxx");
            sql.setCallback(Sqls.callback.entities());
            sql.setEntity(dao.getEntity(xxx.class));
            dao.execute(sql);
            List<xxx> xxxList = sql.getList(xxx.class);

            dao.clear(xxx.class);

            for (xxx x : xxxList) {
                ......
                dao.insert(x);
            }

            ......
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
3 回复

项目启动了2次?

没有啊,只启动了一次。即使是启动两次,数据每次都是先清了再插入的,也不会出现重复记录吧?

本地不会有问题,服务器上的就是会double一下数目,把取出来的数据条目数打出来也是对的。

添加回复
请先登陆
回到顶部