37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
from PyQt5.QtCore import QThread, pyqtSignal
|
|
import sqlite3
|
|
import time, json
|
|
from random import randint
|
|
import logging
|
|
|
|
from modules.automatch_tao import automatch
|
|
|
|
# 로거 인스턴스 가져오기
|
|
logger = logging.getLogger('default_logger')
|
|
|
|
class TaoScrapingThread(QThread):
|
|
progress_updated = pyqtSignal(int, int)
|
|
#finished = pyqtSignal()
|
|
|
|
def __init__(self, db_name, item_count, message_controller, sort_order, parent=None):
|
|
super(TaoScrapingThread, self).__init__(parent)
|
|
self.db_name = db_name
|
|
self.item_count = item_count
|
|
self.sort_order = sort_order
|
|
self.message_controller = message_controller
|
|
|
|
def run(self):
|
|
def update_progress(current, total):
|
|
self.progress_updated.emit(total, current) # 진행 상황을 UI 스레드에 전달합니다.
|
|
|
|
logger.debug("Automatch 작업 시작")
|
|
try:
|
|
# automatch 함수 호출 시 콜백 함수 전달
|
|
automatch(self.db_name, self.item_count, self.message_controller, self.sort_order, progress_callback=update_progress)
|
|
time.sleep(0.1) # 예시로 작업 지연을 표현합니다.
|
|
|
|
logger.debug("Automatch 작업 완료")
|
|
except Exception as e:
|
|
logger.error(f"Automatch 스레드에서 오류 발생: {e}", exc_info=True)
|
|
finally:
|
|
self.finished.emit() |