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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...