簡體   English   中英

p4java api需要兩次刷新才能獲取新的變更列表描述

[英]p4java api requires double refresh to get a new changelist description

在我的應用程序中,我有一個要自動請求Swarm審查的部分。 為此,我在變更列表描述中放置了#review標簽,並擱置了文件(此后,在描述中的標簽后面出現了Swarm審閱編號)。 一切正常,但我需要在擱置后重新刷新變更列表以獲取更新的描述並提取評論ID。 如果我僅使用一次刷新或完全不刷新,則提取的描述中將不包含評論ID。 此外,在逐步調試時,一次刷新就可以很好地工作,但不能實時進行。

client.shelveChangelist(changelist);
IChangelist cl = server.getChangelist(changelist.getId());
cl.refresh();
cl.refresh();
String description = cl.getDescription;

(實際上,刷新執行了3次,因為在update()方法中還調用了getDescription()方法)。 你知道為什么會這樣嗎? 我嘗試深入研究方法,尋找新線程,或同步代碼,但均無濟於事。

這是一個時間問題。

在服務器端會發生什么:擱置命令上的觸發器將觸發,並異步調用Swarm來創建審閱。 您的shelveChangelist()完成。 Swarm現在會創建評論。 然后Swarm更新原始變更列表描述。

刷新之前先睡一兩秒鍾。 當然,如果Swarm太忙,可能要花一兩秒鍾以上的時間。 或者,如果Swarm站點關閉,則可能根本不會發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM