为了账号安全,请及时绑定邮箱和手机立即绑定

在当前运行计划尚未完成时启动计划 Cron4j

在当前运行计划尚未完成时启动计划 Cron4j

慕慕森 2021-07-08 14:11:03
我正在使用 Cron4j 为数据库创建备份计划。假设我们有 2 个时间表,第一个在 5.00 pm 开始,第二个在 5.30 pm 开始,两者都在同一天。我不知道如果第一个计划的备份时间大于 30 分钟会发生什么。我假设第二个计划仍然会开始并且可能会破坏数据库,因为第一个计划没有完成并且数据库没有更新。在这种情况下我该怎么办?
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

您可以使用自定义名称创建线程并将您的备份进程放入。下次你试着按名字找到他的时候。如果他会被找到 - gackup 正在工作。


    Set<Thread> threads = Thread.getAllStackTraces().keySet();

    boolean isWorking = threads.stream().anyMatch(t -> t.getName().equals("My backup is working"));


    if (!isWorking) {

        Runnable task = () -> {

            Thread.currentThread().setName("My backup is working");

            //some code of run backup

            System.out.println("start backup");

        };


        Thread thread = new Thread(task);

        System.out.println("Done!");

        thread.start();

    }


查看完整回答
反对 回复 2021-07-23
  • 1 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信