作为一个类的一个例子,我试图找出最强大的方法来创建一个热点Observable
,它为给定的股票代码发出当前价格,但只有在它发生变化时才会发出价格。我自己能想出的最好办法是创建一个间隔源Observable
,它将每 3 秒查询一次 Google Finance,解析价格,并且只有在价值通过distinct_until_changed()
.
from threading import Semaphore
from rx import Observable
from googlefinance import getQuotes
import json
Observable.interval(3000) \
.map(lambda i: json.dumps(getQuotes('AAPL'))) \
.map(lambda s: json.loads(s)[0]) \
.map(lambda dict: float(dict["LastTradePrice"])) \
.distinct_until_changed() \
.subscribe(print)
sema = Semaphore(0)
sema.acquire()
有谁知道一种更有效的方法来做到这一点,并且不必每隔一段时间重新查询,而是在价格实际变化时触发源?如果它过于复杂并且需要一些专门的库,我会坚持我所拥有的。我只是觉得我错过了一个更好的方法来做到这一点......