一次观察多个

时间:2019-06-03 03:29:16

标签: python-3.x observable reactive-programming reactivex rx-py

我正在使用RxPy构建交易应用程序。我需要同时订阅多个无限的Observable,但是任何订阅请求都会阻止其余的订阅发生。

from threading import Lock
import multiprocessing
thread = None
thread_lock = Lock()
thread_count = multiprocessing.cpu_count() + 1
pool_scheduler = ThreadPoolScheduler(thread_count)

def background_thread():
    Observable \
        .interval(1000) \
        .subscribe_on(pool_scheduler) \
        .from_(symbols) \
        .repeat() \
        .map(lambda t: getQuote(t)) \
        .subscribe(lambda q: processQuote(q))

    print('Never gets here')

    Observable \
        .interval(10000) \
        .subscribe_on(pool_scheduler) \
        .from_(symbols) \
        .repeat() \
        .map(lambda t: getChart(t, None, None, None)) \
        .subscribe(lambda q: processChart(q))

我尝试将两个Observables封装在Observable.merge(obs1, obs2)中,但这都不起作用。我仍然只有第一个Observable活动。

我发现每个示例都处理一个Observable。当您需要同时订阅所有流式传输的多个Observable时,该怎么办?我预计最终将需要六到十个流。

0 个答案:

没有答案