我正在使用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时,该怎么办?我预计最终将需要六到十个流。