Job is not finished!

版本 V3
部署方式 :docker单机伪分布
测试环境

连续执行 SUBMIT JOB STATS -->SHOW STATS  有时会报错!Job is not finished!

目的
我想要查询该图空间下所有的实体信息

 MATCH (v)  RETURN v  LIMIT 3

limit (后面写多少)? 我想要程序智能一点,所以思路是先去查询图空间下所有的实体个数 然后再确定后面写多少值? 或者有更好的思路来实现我这个功能吗?

这合理啊,请看文档 SHOW STATS - NebulaGraph Database 手册

对我每次执行show stats 前都执行submit job stats 但是有的时候连续执行的话就会出现这个报错

= =。当中还有个步骤啊,

我执行你上面说的这个命令执行不成功


显示报错信息

你看清楚截图的命令是什么。

他这个查出来是98 我这个查出来是106 所以执行的是106

/- -,你看清楚是 SHOW JOB JOBID 而不是 SUBMIT JOB JOBID!

不好意思没有看清我一会改一下代码,看看还会不会报这个错误

我在代码中是按照这三个顺序执行的连续执行了五六次,然后还是会报这个错误

它不是失败报错,是你试试过段时间,可能是 10 多分钟?这个 job 完成的时间和你的数量量有关系的,我之前就 1w 多条数据是秒完成的。你可以等一会再执行下 show job 命令。


这个是我图空间中的数据量并不是很多,就是在我连续执行程序的时候经常会报这个错,是数据库设计的原因吗?如果在高并发访问下这个问题应该怎么解决

你是说在 java 客户端(你那个编辑器截图是 java 么)执行就会报错对么

是Python,用编译器通过连续执行命令会这样

@wey 思为老师你看一下这个问题是数据库设计的问题吗

这是期待中的,job 都是异步的哈,开始执行之后要等一会儿才能完成的。 Stats 这个 job 在数量大的时候可能跑很久呢,你需要实时获取图的总量?这个只能一直 pull job 状态,等 finish 才能有第一个结果。

是的,哪有其他别的方法吗

目前 count 还没有下推,实时的方法也只有用 query 做,但是比较费资源

cc @MuYi

不过,一般来说大家不需要那么精准的 stats,所以你跑一次,可以一直 query,不需要每次都提交 job

简单来说,你后续如果 show stats 的话,数据可能不是最新的,因为最新数据都是要通过 submit stats job 这个操作完成之后才能看到的。(作为对 wey 回复的补充)

其实我想要实现的是展示所有图空间下的顶点及其属性,想用MATCH (v) RETURN v LIMIT 3 进行展示但是后面跟多少数字有点不确定,所有想的是先查一下所有的数据有多少,后面在跟多少