Skip to content

Instantly share code, notes, and snippets.

@jsanda
Created May 19, 2015 19:52
Show Gist options
  • Save jsanda/ddbdc4da3deadabc8731 to your computer and use it in GitHub Desktop.
Save jsanda/ddbdc4da3deadabc8731 to your computer and use it in GitHub Desktop.
Observable<Lease> leaseObservable = leaseService.find(timeSlice)
.filter(lease -> lease.getOwner() == null)
.map(lease -> lease.setOwner(owner));
Observable<Boolean> acquiredObservable = leaseObservable.flatMap(leaseService::acquire)
.filter(acquired -> acquired);
Observable.zip(leaseObservable, acquiredObservable, ((lease, acquired) -> lease))
.flatMap(lease -> findTasks(lease, taskType))
.map(executeTasksSegment)
.flatMap(this::rescheduleTask)
.flatMap(taskContainer -> rxSession.execute(queries.deleteTasks.bind(
taskContainer.getTaskType().getName(), timeSlice.toDate(),
taskContainer.getSegment())))
//.collect()
// When all of the result sets are available and only if all tasks completed
// successfully do I then want to mark the lease finished
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment