所以,我有一个/download
API,它返回一个泛型Object
(基于索引号,这是它自己的参数)然后我必须将它保存到我的数据库,如果事务成功,我必须增加我的索引并重复相同的过程再说一遍,否则retry()
.
我需要重复这个约50次.
如何使用Rx-Java实现此过程?我现在卡住了.任何帮助都是极好的.谢谢.
Observable.range(1, 50) .flatMap(index -> // for every index make new request makeRequest(index) // this shall return Observable.retry(N) // on error => retry this request N times ) .subscribe(response -> saveToDb(response));
回答评论(仅在先前的响应保存到db后发出新请求):
Observable.range(1, 50) .flatMap(index -> // for every index make new request makeRequest(index) // this shall return Observable.retry(N) // on error => retry this request N times .map(response -> saveToDb(response)), // save and report success 1 // limit concurrency to single request-save ) .subscribe();