Usage¶
To schedule one task to be run at regular intervals:
import tgscheduler
import time
def task():
print('Running task')
print('Init')
tgscheduler.start_scheduler()
print('Registering an interval task')
tgscheduler.add_interval_task(action=task, interval=5, initialdelay=5)
print('Sleeping')
while True:
time.sleep(10)
Another example showing more available calls:
from tgscheduler import start_scheduler
from tgscheduler.scheduler import add_interval_task
from tgscheduler.scheduler add_weekday_task
from tgscheduler.scheduler add_single_task
import sys
import logging
log = logging.getLogger(__name__)
def testTask(email=None):
log.debug("testTask Called")
def schedule():
""" start scheduler and setup recurring tasks """
if "shell" in sys.argv: # disable cron in paster shell mode
return
log.info("Starting Scheduler Manager")
start_scheduler()
# ================ #
# Add cron tasks here
# Run once a day
add_weekday_task(action=testTask, weekdays=range(1-8), timeonday=(19, 0))
# run at intervals
add_interval_task(action=testTask, taskname="test1", interval=60*60, initialdelay=30)
# run this once and forgot, useful for long running backgound tasks
add_single_task(action=testTask, initialdelay=0, args=[request.user.email_address] )
# Your framework is now supposed to call the "schedule" function.
schedule()