def _start(self, app_context, **kwargs): if self.__input is None: self.__input = app_context.inst_data_mgr.get_series(self.input.name) self.__input.subject.subscribe(on_next=self.on_update) if self.__output_bar_type == BarType.Time: current_ts = self.__clock.now() next_ts = Bar.get_next_bar_start_time(current_ts, self.__output_size) diff = next_ts - current_ts Observable.timer(int(diff), self.__output_size * 1000, self.__clock.scheduler).subscribe( on_next=self.publish)
def _start(self, app_context, **kwargs): if self.__input is None: self.__input = app_context.inst_data_mgr.get_series( self.input.name) self.__input.subject.subscribe(on_next=self.on_update) if self.__output_bar_type == BarType.Time: current_ts = self.__clock.now() next_ts = Bar.get_next_bar_start_time(current_ts, self.__output_size) diff = next_ts - current_ts Observable.timer( int(diff), self.__output_size * 1000, self.__clock.scheduler).subscribe(on_next=self.publish)
def run(interval, port): scheduler = AsyncIOScheduler() clock = Observable.timer(0, interval, scheduler=scheduler) loop = asyncio.get_event_loop() server = TCPServer(loop) observer = SimpleObserver() all_events = server.tcp_subject.map(lambda x: x[0].strip()).merge( clock).debounce(int(interval / 10), scheduler=scheduler) all_events.subscribe(observer) server.start(port) loop.close()
def delay_subscription(self, duetime, scheduler): """Time shifts the observable sequence by delaying the subscription. 1 - res = source.delay_subscription(5000) // 5s 2 - res = source.delay_subscription(5000, Scheduler.timeout) // 5 seconds duetime -- Absolute or relative time to perform the subscription at. scheduler [Optional] Scheduler to run the subscription delay timer on. If not specified, the timeout scheduler is used. Returns time-shifted sequence. """ scheduler = scheduler or timeout_scheduler def selector(x): return Observable.empty() return this.delay_with_selector(Observable.timer(duetime, scheduler), selector)
def interval(cls, period, scheduler=None): """Returns an observable sequence that produces a value after each period. Example: 1 - res = rx.Observable.interval(1000) 2 - res = rx.Observable.interval(1000, rx.Scheduler.timeout) Keyword arguments: period -- Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds). scheduler -- [Optional] Scheduler to run the timer on. If not specified, rx.Scheduler.timeout is used. Returns an observable sequence that produces a value after each period. """ scheduler = scheduler or TimeoutScheduler() return Observable.timer(period, period, scheduler)
def delay_subscription(self, duetime, scheduler): """Time shifts the observable sequence by delaying the subscription. 1 - res = source.delay_subscription(5000) # 5s 2 - res = source.delay_subscription(5000, Scheduler.timeout) # 5 seconds duetime -- Absolute or relative time to perform the subscription at. scheduler [Optional] Scheduler to run the subscription delay timer on. If not specified, the timeout scheduler is used. Returns time-shifted sequence. """ scheduler = scheduler or timeout_scheduler def selector(_): return Observable.empty() return self.delay_with_selector(Observable.timer(duetime, scheduler), selector)
def run(interval, port): scheduler = AsyncIOScheduler() clock = Observable.timer(0, interval, scheduler=scheduler) loop = asyncio.get_event_loop() server = TCPServer(loop) observer = SimpleObserver() all_events = server.tcp_subject.map( lambda x: x[0].strip() ).merge( clock ).debounce( int(interval / 10), scheduler=scheduler ) all_events.subscribe(observer) server.start(port) loop.close()