Skip to content

imyizhang/TimerThread

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TimerThread

TimerThread is

TimerThread supports to

  • schedule task execution after a given delay
  • schedule recurring task execution
  • run in the background
  • use @task decorator to define task

Quickstart

Define your function, now(cost) as an example:

import time

def now(cost=1):
    time.sleep(cost)
    print( time.strftime('%Y-%m-%d %H:%M:%S %Z', time.localtime()) )

Create a TimerThread scheduler and start it:

import timerthread

timer = timerthread.Scheduler('recur', 3, now, args=(1,))
timer.start()

Shutdown the scheduler:

timer.cancel()

Play with the @task decorator

Use @task decorator to define your function, then schedule it and start the scheduler, now(cost) as an example:

import time
import timerthread

@timerthread.task('recur', 3)
def now(cost=1):
    time.sleep(cost)
    print( time.strftime('%Y-%m-%d %H:%M:%S %Z', time.localtime()) )

timer = now.sched(cost=1)
timer.start()

When you'd like to cancel the recurring execution, shutdown the scheduler as usual:

timer.cancel()

Install TimerThread

$ pip install timerthread

Documentation

Scheduler

class timerthread.Scheduler(trigger, interval, fn, args=(), kwargs={})

trigger must be 'delay' or 'recur'.

  • stopped

    The scheduler is stopped or not, True (default) or False.

  • result

    The execution result, {} as default.

  • start()

    Let scheduler start executing your function as scheduled in the background.

  • cancel()

    Shutdown the scheduler.

task

class timerthread.task(trigger, interval)

trigger must be 'delay' or 'recur'.

  • Use @task decorator to define your function, then schedule it and start the scheduler:

    @timerthread.task(trigger, interval)
    def fn(args, kwargs):
        pass
      
    timer = fn.sched(*args, **kwargs)

    fn.sched(*args, **kwargs) returns timerthread.Scheduler instance.

Related Projects