The priority function wraps two topics that represent high priority and low priority task queues.
Each time the priority function is called it will check to see if there are any high priority tasks in the queue. If there
are high priority tasks, then the high priority queue will be read until it returns the EOF Tuple.
If there are no tasks in the high priority queue, then the lower priority task queue will be opened and read until the EOF Tuple is
returned.
The scheduler is designed to be wrapped by the executor function and a daemon function can be used to call the executor iteratively.