scheduler

Scheduler for and executing PlateFlo perfusion system events.

plateflo.scheduler.DailyEvent(task, hh=0, mm=0, s=0, args=[], **kwargs)

Wrapper around RecurringEvent for convenient daily task execution.

Parameters
  • hh (int) – Time of day, hour [0-23]

  • mm (int, default = 0) – Time of day, minute [0-59]

  • s (int, default = 0) – Time of day, seconds [0-59]

  • task (function pointer) – Function executed at scheduled time

  • args (list) – Add positional arguments passed to task

  • kwargs – Additional keyword arguments passed to task

Returns

Daily recurring event.

Return type

RecurringEvent

class plateflo.scheduler.RecurringEvent(interval, task, start_time=None, stop_time=None, delay=None, _eventID=None, _resched=False, args=[], **kwargs)

Event triggered at the specified interval w/ optional start time OR delay.

Parameters
  • interval (timedelta) – Recurrance interval

  • task (function pointer) – Function to excute at scheduled interval

  • start_time (datetime, optional) – First occurance at specified time. Excludes delay

  • stop_time (datetime, optional) – Terminate recurrance after this time

  • delay (timedelta, optional) – Delay first occurance by this amount. Excludes start_time

  • args (list) – Positional arguments, passed to task

  • **kwargs – Keyword arguments, passed to task

Raises
  • ValueError – both start_time and delay parameters are provided. task function not provided

  • TypeError – interval not of type timedelta

class plateflo.scheduler.Scheduler

Event schedule handler. Schedules, monitors, and executes events

events

Unexecuted future event objects.

Type

list

event_history

Previous triggered event objects.

Type

list

add_event(event)

Inserts scheduled event into the event queue.

Parameters

event (SingleEvent, RecurringEvent) – SingleEvent or RecurringEvent object

Returns

Event identifier. Can be used to remove event with remove_event()

Return type

int

monitor()

Call frequently from the main script loop!

Checks if events are due to trigger and transfers triggered events to the event history. Reschedules recurring events if necessary.

remove_event(eventID)

Removes the selected event from the scheduler queue.

Parameters

eventID (int) – Unique event identifier.

class plateflo.scheduler.SingleEvent(dateTime, task, _eventID=None, args=[], **kwargs)

Simple event object, executes once at the specified time.

Parameters
  • dateTime (datetime) – Scheduled execution start time

  • task (function pointer) – Function to excecute at scheduled time

  • args (list) – positional arguments, passed to task

  • **kwargs – keyword arguments passed to task

trigger()

Execute the event task.