Redisson выполняет предыдущие работы по расписанию вновь представленных работ

Сначала я запланировал 5 заданий (old_job), которые они выполнили успешно. После этого я запланировал еще 5 заданий (new_job), но на этот раз предыдущие 5 заданий были выполнены по расписанию, которое я дал для нового задания. Может кто-нибудь объяснить мне это поведение redisson и указать, где я делаю ошибку.

public class Main {

private final static int NO_OF_JOBS = 5;

public static void main(String[] args) {

    Config config = new Config();
    config.useClusterServers()
            .addNodeAddress("http://127.0.0.1:7000", "http://127.0.0.1:7001", "http://127.0.0.1:7002");
    RedissonClient redisson = Redisson.create(config);
    RExecutorService e =  redisson.getExecutorService("w1");//redisson.getExecutorService("w1");

    for (int j = 0; j < NO_OF_JOBS; j++) {
        Calendar calendar = Calendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE) + 1;
        //System.out.println("hour, minute" + hour + ", " + minute);
        ((RScheduledExecutorService) e).schedule(new RunnableTask(j + 1), CronSchedule.dailyAtHourAndMinute(hour, minute));
    }
  }
}

//new_job
public class RunnableTask implements Runnable {
    private int job_no;
    RunnableTask(int job_no) {
        this.job_no = job_no;
    }
    public void run() {
        try {
            Thread.sleep(10);
            System.out.println("This is task no " + job_no);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

//old_Job

public class RunnableTask implements Runnable {
    private static volatile int i = 0;
    private long anyParam;
    public RunnableTask() {
    }
    RunnableTask(long anyParam) {
        this.anyParam = anyParam;
    }
    public void run() {
        try {
            Thread.sleep(10);
            i++;
            System.out.println(i);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Для этого эксперимента я запустил 4 редиссоннода в автономном режиме с конфигурацией, описанной ниже.

{
   "clusterServersConfig":{
      "nodeAddresses":[
         "redis://127.0.0.1:7001",
         "redis://127.0.0.1:7002",
         "redis://127.0.0.1:7003"
      ],
   },
   "threads":10,
   "executorServiceWorkers": {"w1":10},

}

Мне нужна помощь в выводе такого поведения редиссона.

0 ответов

Другие вопросы по тегам