Open xionghan00 opened 7 years ago
版本 1.6.9 JobTracker个数:2 任务类型:Cron-依赖上一周期
当前逻辑: 当TaskTracker完成任务后,随机选择一个JobTracker返回JobRunResult,JobTracker会根据当前服务器时间产生下一次触发任务。
场景: 假设JobTracker-1在 10:00(JobTracker-1的服务器时间)分发cron任务,task-tracker迅速完成任务并返回至JobTracker-2,而此时JobTracker-2的服务器时间为09:59。这样JobTracker-2计算出的下一个触发时间点依然是10:00,那么该cron任务在10:00时间点会被触发多次。
这个问题是否有办法规避?或者属于bug,需要修复?
只能保证两个jobtracker的服务器时间一致,尽量少的差别,我也碰到过这个问题。 或者使用分布式锁,保证在一个固定的时间内(如1s),只有一个jobtracker能派发任务。
这种情况确实会出现
版本 1.6.9 JobTracker个数:2 任务类型:Cron-依赖上一周期
当前逻辑: 当TaskTracker完成任务后,随机选择一个JobTracker返回JobRunResult,JobTracker会根据当前服务器时间产生下一次触发任务。
场景: 假设JobTracker-1在 10:00(JobTracker-1的服务器时间)分发cron任务,task-tracker迅速完成任务并返回至JobTracker-2,而此时JobTracker-2的服务器时间为09:59。这样JobTracker-2计算出的下一个触发时间点依然是10:00,那么该cron任务在10:00时间点会被触发多次。
这个问题是否有办法规避?或者属于bug,需要修复?