在我的应用程序中,我有一个想要自动请求Swarm审查的部分。为此,我在变更列表描述中放置了一个#review标签并搁置文件(之后,Swarm审阅编号出现在描述中的标签后面)。一切工作正常,除了我需要在搁置后再次刷新更改列表以获取更新的描述并提取审阅ID。如果我只使用一次刷新,或者根本不刷新,则提取的描述不包含审阅ID。此外,在分步调试时使用单次刷新效果很好,但不是实时的。
client.shelveChangelist(changelist);
IChangelist cl = server.getChangelist(changelist.getId());
cl.refresh();
cl.refresh();
String description = cl.getDescription;(实际上,刷新被执行了3次,因为在refresh()方法中也调用了getDescription()方法)。你知道为什么会这样吗?我试着深入研究这些方法,寻找新的线程,或者同步代码,但都不起作用。
发布于 2018-09-01 03:45:51
这是一个时机问题。
在服务器端发生的事情:在你的搁置命令上触发一个触发器,然后它asynchronously调用Swarm来创建一个评论。您的shelveChangelist()完成。Swarm现在创建评论。然后,Swarm更新原始的变更列表描述。
在你恢复精神之前,先睡一两秒钟。当然,如果Swarm非常忙,可能需要一两秒以上的时间。或者如果Swarm站点关闭,可能根本不会发生。
https://stackoverflow.com/questions/51728410
复制相似问题