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]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0083 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