Gremlin - 在执行下一行脚本之前等待 schema.drop() 完成
Posted
技术标签:
【中文标题】Gremlin - 在执行下一行脚本之前等待 schema.drop() 完成【英文标题】:Gremlin - wait for schema.drop() to finish before executing next line of script 【发布时间】:2021-01-03 18:10:32 【问题描述】:我正在尝试针对我们的 Datastax DSE Graph 数据库运行 Gremlin 架构创建脚本,该脚本的第一行是 schema.drop()
,但该脚本似乎立即转到脚本的下一行并抛出一个错误说它试图创建的新对象仍然存在。通常schema.drop()
大约需要一分钟左右,所以看起来它并没有等待它完成删除模式,然后再运行下一行脚本。
有没有办法强制脚本在 schema.drop()
行之后等待并让它完成删除架构,然后再尝试运行下一行脚本以创建新架构?
【问题讨论】:
【参考方案1】:我给出的一般建议是避免以编程方式更改架构,因为这在我合作过的企业中经常出现问题。如果您提供有关如何编写脚本的详细信息,我很乐意审核并修改我的回复。
我注意到在 Gremlin 中添加暂停或等待,但可能的解决方法是中断您的操作,以便独立于架构创建的其余部分执行 schema.drop()
。使用此解决方法,您可以 (a) 在操作之间手动暂停,或者 (b) 如果您正在运行 shell 脚本,则在两者之间添加 sleep
。
需要注意的一点是,在进行架构更改时执行检查以确保在执行下一个 DDL 之前每个 DDL 都成功,这一点很重要。干杯!
附:我已经联系了 DataStax 的 Graph 团队,以获得推荐的处理方式。
【讨论】:
以上是关于Gremlin - 在执行下一行脚本之前等待 schema.drop() 完成的主要内容,如果未能解决你的问题,请参考以下文章
我如何让java在执行下一行之前等待一秒钟,而不使用try/catch [重复]