2
我搜索了一段時間,但沒有找到具體的解決方案,有些使用像.setTimeout(...)這樣的函數方法,但我只是想設置一個公共方法的超時在我的項目中。 爲什麼?因爲在代碼中,我向你展示了底部有時候,我沒有從我的網站上發佈我的WordPress發佈的回覆,並且它終止了所有預定發佈處理程序。如何在Java中爲公共方法超時?
public void blogPublish(String articleTitle, String articleText, Date pubDate, String sourceDomain, String sourceAuthor, String blogCategory) throws XmlRpcFault{
String fullArticleContent = articleText;
XmlRpcArray categoryArray = new XmlRpcArray();
categoryArray.add(blogCategory);
this.post = new Page();
this.post.setTitle(articleTitle);
this.post.setDescription(fullArticleContent);
this.post.setDateCreated(pubDate);
this.post.setCategories(categoryArray);
String newPostIds = this.WP.newPost(post, true);
int newPostId = Integer.valueOf(newPostIds).intValue();
Page postNow = WP.getPost(newPostId);
System.out.println("Article Posted. Title=> "+ articleTitle);
}
我怎樣才能超時整個blogPublish功能?我需要跳過它,如果5秒後我仍然沒有回覆從我的網站發佈,因爲它太慢或在那一刻無法訪問。
這似乎是一個很好的解決方案,但我有點新手,我不知道如何實現它,我甚至搜索,但沒有例子,只有代碼文檔。 你有沒有一個如何在我的案例中構建它的例子?我已經在課堂上導入了圖書館,我有我之前粘貼的功能。 – HypercubeLabs 2013-05-01 15:06:44
你需要將你的函數包裝成一個'Callable',以便它可以被'SimpleTimeLimiter'接受。我編輯了我的答案來提供一個例子。 P.s.方法參數過量(在你的情況下爲6)是一種代碼異味。 – mindas 2013-05-01 15:35:40
這是完美的,工作正常。非常感謝! – HypercubeLabs 2013-05-02 08:29:25