From 683b108e33428faf337ce47bc3fc7a47306ae670 Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 18 Jul 2025 14:00:29 +0000 Subject: [PATCH] data_processor.py aktualisiert --- data_processor.py | 72 +++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/data_processor.py b/data_processor.py index c29e86e3..4611d98b 100644 --- a/data_processor.py +++ b/data_processor.py @@ -2309,46 +2309,46 @@ class DataProcessor: # Sammle Sheet Updates (AR, AT, AP) fuer diesen Batch. # Dies geschieht jetzt nach der parallelen Verarbeitung. if scraping_results: - current_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") - current_version = getattr(Config, 'VERSION', 'unknown') - batch_sheet_updates = [] - # Iteriere über die Ergebnisse des finalen Batches - for row_num, result_dict in scraping_results.items(): - # Füge Updates für Rohtext, Meta-Details, Timestamp und Version hinzu - # Wir verwenden hier die zuvor ermittelten col_indices - batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Website Rohtext"] + 1)}{row_num}', 'values': [[result_dict.get('raw_text', 'k.A.')]]}) - batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Website Meta-Details"] + 1)}{row_num}', 'values': [[result_dict.get('meta_details', 'k.A.')]]}) - batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Website Scrape Timestamp"] + 1)}{row_num}', 'values': [[current_timestamp]]}) - batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Version"] + 1)}{row_num}', 'values': [[current_version]]}) - - all_sheet_updates.extend(batch_sheet_updates) + current_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + current_version = getattr(Config, 'VERSION', 'unknown') + batch_sheet_updates = [] + # Iteriere über die Ergebnisse des finalen Batches + for row_num, result_dict in scraping_results.items(): + # Füge Updates für Rohtext, Meta-Details, Timestamp und Version hinzu + # Wir verwenden hier die zuvor ermittelten col_indices + batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Website Rohtext"] + 1)}{row_num}', 'values': [[result_dict.get('raw_text', 'k.A.')]]}) + batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Website Meta-Details"] + 1)}{row_num}', 'values': [[result_dict.get('meta_details', 'k.A.')]]}) + batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Website Scrape Timestamp"] + 1)}{row_num}', 'values': [[current_timestamp]]}) + batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(col_indices["Version"] + 1)}{row_num}', 'values': [[current_version]]}) + + all_sheet_updates.extend(batch_sheet_updates) - # Leere den Scraping-Batch fuer die naechste Iteration - tasks_for_processing_batch = [] - rows_in_current_scraping_batch = [] + # Leere den Scraping-Batch fuer die naechste Iteration + tasks_for_processing_batch = [] + rows_in_current_scraping_batch = [] - # Sende gesammelte Sheet Updates, wenn das Update-Batch-Limit erreicht ist. - # Updates pro Zeile sind 3 (AR, AT, AP). Anzahl der Zeilen = - # len(all_sheet_updates) / 3. - rows_in_update_batch = len( - all_sheet_updates) // 3 # Ganzzahl-Division + # Sende gesammelte Sheet Updates, wenn das Update-Batch-Limit erreicht ist. + # Updates pro Zeile sind 3 (AR, AT, AP). Anzahl der Zeilen = + # len(all_sheet_updates) / 3. + rows_in_update_batch = len( + all_sheet_updates) // 3 # Ganzzahl-Division - if rows_in_update_batch >= update_batch_row_limit: - self.logger.debug( - f" Sende gesammelte Sheet-Updates ({rows_in_update_batch} Zeilen, {len(all_sheet_updates)} Zellen)...") # <<< GEÄNDERT - # Nutzt die batch_update_cells Methode des Sheet Handlers (Block 14) mit Retry. - # Wenn es fehlschlaegt, wird es intern geloggt. - success = self.sheet_handler.batch_update_cells( - all_sheet_updates) - if success: - self.logger.info( - f" Sheet-Update fuer {rows_in_update_batch} Zeilen erfolgreich.") # <<< GEÄNDERT - # Der Fehlerfall wird von batch_update_cells geloggt + if rows_in_update_batch >= update_batch_row_limit: + self.logger.debug( + f" Sende gesammelte Sheet-Updates ({rows_in_update_batch} Zeilen, {len(all_sheet_updates)} Zellen)...") # <<< GEÄNDERT + # Nutzt die batch_update_cells Methode des Sheet Handlers (Block 14) mit Retry. + # Wenn es fehlschlaegt, wird es intern geloggt. + success = self.sheet_handler.batch_update_cells( + all_sheet_updates) + if success: + self.logger.info( + f" Sheet-Update fuer {rows_in_update_batch} Zeilen erfolgreich.") # <<< GEÄNDERT + # Der Fehlerfall wird von batch_update_cells geloggt - # Leere die gesammelten Updates nach dem Senden. - all_sheet_updates = [] - # rows_in_update_batch muss nicht explizit zurueckgesetzt - # werden, da es aus len(all_sheet_updates) berechnet wird. + # Leere die gesammelten Updates nach dem Senden. + all_sheet_updates = [] + # rows_in_update_batch muss nicht explizit zurueckgesetzt + # werden, da es aus len(all_sheet_updates) berechnet wird. # Keine Pause hier nach jedem kleinen Scraping-Batch, da wir auf batch_update warten. # Die Pause kommt erst nach dem Batch-Update (oder am Ende des Modus).