Sched module in Python
Last Updated :
06 Feb, 2020
Sched module is the standard library, can be used in the creation of bots and other monitoring and automation applications. The sched module implements a generic event scheduler for running tasks at specific times. It provides similar tools like task scheduler in windows or Linux, but the main advantage is with Python’s own sched module platform differences can be ignored.
Example:
import sched
import time
scheduler = sched.scheduler(time.time,
time.sleep)
|
Basic methods available with scheduler instances
- scheduler.enter(): Events can be scheduled to run after a delay, or at a specific time. To schedule them with a delay,
enter()
method is used.
Syntax: scheduler.enter(delay, priority, action, argument=(), kwargs={})
Parameters:
delay: A number representing the delay time
priority: Priority value
action: Calling function
argument: A tuple of arguments
Example:
import sched
import time
scheduler = sched.scheduler(time.time,
time.sleep)
def print_event(name):
print ( 'EVENT:' , time.time(), name)
print ( 'START:' , time.time())
e1 = scheduler.enter( 1 , 1 ,
print_event, ( '1 st' , ))
e1 = scheduler.enter( 2 , 1 ,
print_event, ( ' 2nd' , ))
scheduler.run()
|
Output :
START: 1580389814.152131
EVENT: 1580389815.1548214 1 st
EVENT: 1580389816.1533117 2nd
- scheduler.enterabs() The
enterabs()
time adds an event to the internal queue of the scheduler, as the run()
method of a scheduler is called, the entries in the queue of a scheduler are executed one by one.
Syntax: scheduler.enterabs(time, priority, action, argument=(), kwargs={})
Parameters:
time: Time at which the event/action has to be executed
priority: The priority of the event
action: The function that constitutes an event
argument: Positional arguments to the event function
kwargs: A dictionary of keyword arguments to the event function
Example:
import sched
import time
scheduler = sched.scheduler(time.time,
time.sleep)
def print_event(name):
print ( 'EVENT:' , time.time(), name)
print ( 'START:' , time.time())
e_x = scheduler.enterabs(time.time() + 1 , 1 ,
print_event,
argument = ( "Event X" , ));
scheduler.run()
|
Output :
START: 1580389960.5845037
EVENT: 1580389961.5875661 Event X
- scheduler.cancel() Remove the event from the queue. If the event is not an event currently in the queue, this method will raise a
ValueError
.
Syntax: scheduler.cancel(event)
Parameter:
event: The event that should be removed.
import sched
import time
scheduler = sched.scheduler(time.time,
time.sleep)
def print_event(name):
print ( 'EVENT:' , time.time(), name)
print ( 'START:' , time.time())
e1 = scheduler.enter( 1 , 1 ,
print_event,
( '1 st' , ))
e2 = scheduler.enter( 2 , 1 ,
print_event,
( ' 2nd' , ))
scheduler.cancel(e1)
scheduler.run()
|
Output :
START: 1580390119.54074
EVENT: 1580390121.5439944 2nd
- scheduler.empty() It return True if the event queue is empty. It takes no argument.
Example:
import sched
import time
scheduler = sched.scheduler(time.time,
time.sleep)
def print_event(name):
print ( 'EVENT:' , time.time(), name)
print ( 'START:' , time.time())
print (scheduler.empty())
e1 = scheduler.enter( 2 , 1 ,
print_event,
( '1 st' , ))
print (scheduler.empty())
scheduler.run()
|
Output :
START: 1580390318.1343799
True
False
EVENT: 1580390320.136075 1 st
- scheduler.queue Read-only attribute returning a list of upcoming events in the order they will be run. Each event is shown as a named tuple with the following fields: time, priority, action, argument, kwargs.
import sched
import time
scheduler = sched.scheduler(time.time,
time.sleep)
def print_event(name):
print ( 'EVENT:' , time.time(), name)
print ( 'START:' , time.time())
e1 = scheduler.enter( 2 , 1 ,
print_event,
( '1 st' , ))
print (scheduler.queue)
scheduler.run()
|
Output :
START: 1580390446.8743565
[Event(time=1580390448.8743565, priority=1, action=, argument=(‘1 st’, ), kwargs={})]
EVENT: 1580390448.876916 1 st
Share your thoughts in the comments
Please Login to comment...