我想AsyncTwitter
从我的 Scala 应用程序中使用。有没有办法将它包装在期货中,让它看起来更像是惯用的 Scala?或者期货真的可以将同步的东西转换为异步的(即,对已经异步的函数没有用)?
无论哪种方式,在 Scala 中进行异步 twitter 状态更新的最惯用的方式是什么
- 将代码包装
AsyncTwitter
在期货中? - 将来包装同步代码?
- 忘记期货,只需在 Scala 中重写下面的代码。
并且(特别是如果#1 是答案)最终代码会是什么样子?
这是我想知道的代码:http: //twitter4j.org/en/code-examples.html#asyncAPI
TwitterListener listener = new TwitterAdapter() {
@Override public void updatedStatus(Status status) {
System.out.println("Successfully updated the status to [" +
status.getText() + "].");
}
@Override public void onException(TwitterException e, int method) {
if (method == TwitterMethods.UPDATE_STATUS) {
e.printStackTrace();
} else {
throw new AssertionError("Should not happen");
}
}
}
// The factory instance is re-useable and thread safe.
AsyncTwitterFactory factory = new AsyncTwitterFactory(listenrer);
AsyncTwitter asyncTwitter = factory.getInstance();
asyncTwitter.updateStatus(args[0]);
我猜#2 不是答案,因为那样你仍然被挂起的同步线程的开销所困扰,对吧?