Apckeyl_RealESRGAN / telegram_queue.py
evgeniy778's picture
Update telegram_queue.py
d77aeaa verified
Raw
History Blame Contribute Delete
1.92 kB
# =====================================================
# Apckeyl Framework
# Version 1.1
# telegram_queue.py
# =====================================================
"""
Telegram Queue.
Соединяет Telegram Framework
с системой очереди проекта.
Version 1.1
"""
from priority_queue import PriorityQueue
from batch_processor import BatchProcessor
class TelegramQueue:
"""
Telegram Queue.
Принимает задания Telegram,
помещает их в PriorityQueue
и может передавать их
BatchProcessor.
Сам AI не выполняет.
"""
def __init__(self):
self.queue = PriorityQueue()
self.batch_processor = BatchProcessor()
# -------------------------------------------------
def add_task(
self,
task,
owner=False,
):
self.queue.add(
task=task,
owner=owner,
)
print()
print("Task added to PriorityQueue.")
print(
f"Queue size : {self.queue.size()}"
)
# -------------------------------------------------
def process_next(
self,
mode,
quality,
denoise,
):
task = self.queue.get_next()
if task is None:
print()
print("Queue is empty.")
return None
print()
print("Processing task...")
return self.batch_processor.process_with_limit(
images=[task],
mode=mode,
quality=quality,
denoise=denoise,
)
# -------------------------------------------------
def size(self):
return self.queue.size()
# -------------------------------------------------
def clear(self):
self.queue.clear()
print()
print("Telegram queue cleared.")