Task scheduler
In [ ]:
Copied!
import heapq
import heapq
In [ ]:
Copied!
class TaskScheduler:
def __init__(self):
self.tasks = []
def add_task(self, func, priority):
heapq.heappush(self.tasks, (priority, func))
def run_next(self):
if self.tasks:
_, task = heapq.heappop(self.tasks)
task()
class TaskScheduler:
def __init__(self):
self.tasks = []
def add_task(self, func, priority):
heapq.heappush(self.tasks, (priority, func))
def run_next(self):
if self.tasks:
_, task = heapq.heappop(self.tasks)
task()
In [ ]:
Copied!
# Example usage
def high_priority_task():
print("High priority task executed")
# Example usage
def high_priority_task():
print("High priority task executed")
In [ ]:
Copied!
def low_priority_task():
print("Low priority task executed")
def low_priority_task():
print("Low priority task executed")
In [ ]:
Copied!
scheduler = TaskScheduler()
scheduler.add_task(low_priority_task, 10)
scheduler.add_task(high_priority_task, 1)
scheduler = TaskScheduler()
scheduler.add_task(low_priority_task, 10)
scheduler.add_task(high_priority_task, 1)
In [ ]:
Copied!
scheduler.run_next() # Executes high_priority_task
scheduler.run_next() # Executes low_priority_task
scheduler.run_next() # Executes high_priority_task
scheduler.run_next() # Executes low_priority_task