Python ReactiveXのtimerが値を出さない

ReactiveXのコード読んでないので理由不明ですが、reactivex.timer()Link はdue timeにdatetime.datetime型を指定した場合、値を出さない。GILLink とかasyncioという話でもなさそう。

import datetime
import reactivex as rx

import time
import asyncio

dtStart = datetime.datetime.now() + datetime.timedelta(seconds=10)
rx.timer(dtStart, 5).subscribe(
    on_next = lambda value: print(value),  # 呼ばれない
    on_completed = lambda: print('completed'),
    on_error = lambda ex: print(ex)
)

time.sleep(30)
# asyncio.run(asyncio.sleep(30))  # こちらでも同じなので、GILのせいではなさそう
回避策として、due timeから現時刻を引き算して渡す。
rx.timer(dtStart - datetime.datetime.now(), 5)  # これは値を出す
環境
  • WinPython 3.12.2 64bit
  • reactivex 4.0.4

— posted by mu at 02:30 pm   commentComment [0]  pingTrackBack [0]

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~ (QQ)

     

[X] [Top ↑]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0158 sec.
prev
2024.3
next
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31