微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Helix taskDriver pollForWorkflowState有时会失败,持续时间可能长于5分钟

如何解决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 举报,一经查实,本站将立刻删除。