如何解决Helix taskDriver pollForWorkflowState有时会失败,持续时间可能长于5分钟
我们正在使用Apache Helix(0.9.4)计划400个任务,这些任务完成后,又计划了另外400个任务。我们正在使用下面的代码,而轮询代码将引发HelixException声明上下文为空。
这可能是由于无法在300.000毫秒内确定状态所致。因此,一个简单的解决方法是增加轮询超时,但是我仍然想知道此延迟来自何处,还有其他我们可以增加或更改以防止这种情况发生的原因,因为将来还会安排更多任务。
我已经注意到,当我增加Zookeeper实例的基础架构(在AWS上运行)时,花费更长的时间才能得到此错误
任何建议,想法都很有帮助
for (Workflow workflow : workflows) {
LOGGER.info("Starting work package '{}'",workflow.getName());
taskDriver.start(workflow);
}
for (Workflow workflow : workflows) {
try {
taskDriver.pollForWorkflowState(workflow.getName(),TaskState.values());
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new WorkerException("Interrupted while waiting for work package to get started",e);
}
}
下面是一条日志消息,由于是INFO消息,因此不确定是否不好。 看来该工作不再计划了。
Log info message 'Fail to schedule new jobs assignment for Workflow 834c7e1d-b9ef-44bd-bce3-0afd5645f29d: XYZ due to quota DEFAULT is full'
亲切的问候, 理查德
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。