Signed-off-by: Omar Sánchez Pizarro <omar.sanchez@pistacero.net>
This commit is contained in:
Omar Sánchez Pizarro
2026-01-20 03:22:56 +01:00
parent 81bf0675ed
commit d28710b927
12 changed files with 1166 additions and 310 deletions

View File

@@ -8,11 +8,12 @@ from managers.worker_conditions import WorkerConditions
ERROR_SLEEP_TIME = 60
class Worker:
def __init__(self, item_to_monitor, general_args, queue_manager):
def __init__(self, item_to_monitor, general_args, queue_manager, username=None):
self.logger = logging.getLogger(__name__)
self._item_monitoring = item_to_monitor
self._general_args = general_args
self._queue_manager = queue_manager
self._username = username # Usuario propietario del worker
self._worker_conditions = WorkerConditions(item_to_monitor, general_args)
self._running = True
self._stop_event = threading.Event()
@@ -26,7 +27,8 @@ class Worker:
raise
# Initialize the queue with existing articles
self._queue_manager.add_to_notified_articles(self._request_articles())
worker_name = self._item_monitoring.get_name()
self._queue_manager.add_to_notified_articles(self._request_articles(), username=self._username, worker_name=worker_name)
def update_general_args(self, general_args):
"""Actualiza los argumentos generales del worker"""
@@ -58,7 +60,12 @@ class Worker:
break
if self._worker_conditions.meets_item_conditions(article):
try:
self._queue_manager.add_to_queue(article, self._item_monitoring.get_name(), self._item_monitoring.get_thread_id())
self._queue_manager.add_to_queue(
article,
self._item_monitoring.get_name(),
self._item_monitoring.get_thread_id(),
username=self._username
)
except Exception as e:
self.logger.error(f"{self._item_monitoring.get_name()} worker crashed: {e}")