whisper-daemon/pipeline/retrythread.py

24 lines
613 B
Python

import time
import multiprocessing as mp
from queue import Queue
from sched import scheduler
from .queuethread import QueueThread
@QueueThread.register
class RetryThread(QueueThread):
def __init__(self, inqueue: Queue,
resultqueue: mp.Queue,
schedule: scheduler):
super().__init__(inqueue)
self.resultqueue = resultqueue
self.schedule = schedule
def _process(self, item):
next_time = item.notification_status.get_next_attempt()
def do():
self.resultqueue.put(item)
self.schedule.enterabs(next_time, 1, do)