U
vi-
@ s~ d dl Z d dlmZ d dlmZmZmZ d dlmZmZ d dlm Z m
Z
mZ ddlm
Z
edZe d ZG d
d de
ZdS ) N)datetime)AnyOptionalTypeVar)abctyping)CompositeDisposable
DisposableSingleAssignmentDisposable )PeriodicScheduler_TStateZRxc s e Zd ZdZedd fddZdeje e e e
jdddZdej
eje e e e
jd d
dZdejeje e e e
jd dd
ZeedddZ ZS )TwistedSchedulerzAA scheduler that schedules work via the Twisted reactor mainloop.N)reactorreturnc s t || _dS )zCreate a new TwistedScheduler.
Args:
reactor: The reactor to use; typically, you would get this
by from twisted.internet import reactor
N)super__init___reactor)selfr __class__ _/opt/alt/python38/lib/python3.8/site-packages/reactivex/scheduler/eventloop/twistedscheduler.pyr s
zTwistedScheduler.__init__)actionstater c C s | j d||dS )a! Schedules an action to be executed.
Args:
action: Action to be executed.
state: [Optional] state to be given to the action function.
Returns:
The disposable object used to cancel the scheduled action
(best effort).
r )schedule_relative)r r r r r r schedule s zTwistedScheduler.schedule)duetimer r r c sh t d|}t dd fdd}td| j||ddfdd}tt|S ) au Schedules an action to be executed after duetime.
Args:
duetime: Relative time after which to execute the action.
action: Action to be executed.
state: [Optional] state to be given to the action function.
Returns:
The disposable object used to cancel the scheduled action
(best effort).
r Nr c s _ d S N)Z
disposabler )r sadr r r r intervalF s z4TwistedScheduler.schedule_relative.