Android RxJava如何创建以不同延迟执行多个作业的间隔?
我对RxJava非常陌生,所以我的问题可能完全是愚蠢的,但我不知道如何去做 因此,我有N个作业实现以下接口Android RxJava如何创建以不同延迟执行多个作业的间隔?,android,rx-java,reactive-programming,android-threading,Android,Rx Java,Reactive Programming,Android Threading,我对RxJava非常陌生,所以我的问题可能完全是愚蠢的,但我不知道如何去做 因此,我有N个作业实现以下接口 interface Worker { int interval(); void job(); } 我想要实现的是一个类似计时器的功能,它可以在每次interval()时间流逝时调用这些Workersjob()函数 到目前为止我都试过了 Observable.fromArray(worker1, worker2) .flatMap(worker -&
interface Worker {
int interval();
void job();
}
我想要实现的是一个类似计时器的功能,它可以在每次interval()
时间流逝时调用这些Worker
sjob()
函数
到目前为止我都试过了
Observable.fromArray(worker1, worker2)
.flatMap(worker -> Observable.just(worker).delay(worker.delay(), TimeUnit.SECONDS))
.subscribe(Worker::job);
这很好,作业是在给定的时间过后异步执行的
但这只执行了一次。我知道我需要以某种方式使用interval()
操作符,但我无法理解它
提前感谢如果我正确理解了您的问题,您需要这样做:
Observable.fromArray(worker1,worker2)
.flatMap{worker->
可观察的.interval(worker.interval(),TimeUnit.SECONDS)
.flatMap{Observable.just(worker.delay(),TimeUnit.SECONDS)}
}
.subscribe(Worker::job)
您应该注意到,在这个实现中,worker.job()
调用将以意外的顺序进行