当前位置: 首页 > 工具软件 > ROMA > 使用案例 >

华为ROMA平台遇到的常见问题汇总

颛孙安康
2023-12-01

华为ROMA平台遇到的常见问题汇总

背景:华为的roma平台是一个很优秀的数据采集和发布平台,我们使用roma的场景只有一种,就是数据采集,不用roma进行数据发布,因此这里只记录数据采集过程中遇到的问题。

1. 同一分组域名调用次数限制

华为ROMA平台设置同一分组一天只能调用一千次,后台也无法更改,有两个解决办法:

  1. 在使用的时候如果某个接口需要调用次数较多,建议单独分组。
  2. 使用IP+port进行调用,通过设置请求头x-hw-id鉴权。IP+端口没有次数限制。

2. 任务运行时长限制

**一次ROMA分页任务限制一分钟内完成,一次分页任务是一分钟,不是整个任务。可以理解为自定义代码从上到下执行要在一分钟内。如果在任务管理模块配置了分页,那么就是一页要在一分钟之内完成。**如果超过了就会报错,建议在外面作业配置分页调度进行采集,而不是在代码中循环分页采集,因为很容易超过1分钟导致任务失败。

3. 内存限制

ROMA在跑任务的时候,数据是存放到内存的????说实话我不太理解,但是在跑数据采集的时候确实出现很多次内存溢出的场景,一个脚本内存是1073741824 B 也就是1GB,如果超了会报内存超的异常。

3. 任务管理分页设置

在任务管理模块设置分页的时候有个坑,有两个字段,一个是分页结束选项,可选值有两个1.分页list为空,2.记录总数,另一个是分页结束字段路径字段,
其中,选择分页list为空选项的时候,分页结束字段路径配置是无效的。当选择分页list为空选项的时候并不能根据分页结束字段路径来识别是否结束,仍然是根据我们数据list来进行识别的。这对我们根据ID去采集数据的场景有影响,需要采用其他方式代替。

4.自定义后端测试只有15s

写完roma自定义后端,在自定义后端模块直接可以测试、发布、部署等操作,在这个界面点测试的时候要注意,可能我们自定义代码里有循环调用某些接口的逻辑,时间很容易超过15s,如果超过15s,就会返回timeout的错误,因此,如果报错了,可以去API管理模块进行调试,如果返回的数据集较大,后面的数据会被截断。

5. ROMA内置有Redis可以使用

之前一直想有些临时的值存放到redis中,然后和华为沟通过几次,终于有结果了,roma内置有redis模块可以使用,这就方便我们在外面配置分页逻辑的时候存放一些临时数据到redis中,然后下次循环的时候从redis中读取了。

5. 任务失败后会将失败数据缓存到内存中。

这个问题特别鸡肋,roma默认将失败的任务缓存起来,然后当你发现错误重新跑任务的时候,ROMA会把失败缓存的部分数据一并进行处理。所以会导致数据的不准确。这个问题目前无解。

6. 对于失败的任务,开发者希望能直接看到失败任务原因,或者通过API方式调用查看,而不是每次找华为运维去看,这样效率很低下

这个问题是针对任务报错,很多时候任务报错只返回个华为封装的错误编码,并不能清楚的看到是哪里的问题,因此还要找华为运维去后台根据任务名称取查看日志,然后反馈报错原因,一来一回快的话一二十分钟,慢的话可能几个小时,非常不利于开发者去排查问题。

7. 在任务管理界面和自定义后端界面查找任务时非常不方便,希望增加 “我的任务“ 视图。

roma的任务管理模块和自定义后端模块,如果是很多人协同开发的话,所有的任务都会显示,如果想查看只有自己开发的任务,是没有这个模块的,希望后面华为优化下吧

8. 异常提醒机制

如果任务失败了ROMA是没有异常提醒的!!!!!!!!! 我是感觉很不可思议,但是后面ROMA的任务统一在DGC中管理和调度,可以借助DGC的异常提醒来提醒我们。当然也可能是我们版本比较老的原因。

总结:

华为的ROMA平台总体来说做数据采集还是很优秀的,大部分的场景任务都能够实现,细节部分还需要再完善

 类似资料: