@@ -1622,17 +1622,23 @@ def adjust_num_workers_for_file(csv_path: str, suggested_workers: int, config: O
16221622 print (f"[DEBUG] Detected free RAM: { free_ram_gb :.4f} GB" ) # Log detected available RAM
16231623 print (f"[DEBUG] Original suggested num_workers: { suggested_workers } " ) # Log original suggestion
16241624
1625- if free_ram_gb <= 0.0 : # If available RAM cannot be determined
1626- print ("[WARNING] Free RAM detected as 0 GB; forcing num_workers=0" ) # Warn
1627- final = 0 # Disable workers to avoid crash
1628- else :
1629- computed = (file_size_gb * 3.0 ) / free_ram_gb # Core formula
1630- final = int (max (0 , computed )) # Ensure non-negative integer
1625+ computed = None
1626+ if file_size_gb <= 0.0 : # If file size cannot be determined or is zero
1627+ print ("[WARNING] File size detected as 0 GB; keeping suggested num_workers" )
1628+ final = max (0 , int (suggested_workers ))
1629+ else : # Otherwise, compute num_workers based on file size and free RAM
1630+ computed = (free_ram_gb * 3.0 ) / file_size_gb # Updated formula: free_ram numerator
1631+ try : # Attempt to convert computed value to float for proper scaling
1632+ computed_val = float (computed )
1633+ except Exception :
1634+ computed_val = float (int (suggested_workers ))
1635+ computed = computed_val
1636+ final = int (max (0 , computed_val )) # Ensure non-negative integer
16311637
16321638 cpu_count = os .cpu_count () or 1 # Detect CPU count safely
16331639 final = min (final , cpu_count ) # Do not exceed logical CPUs
16341640
1635- print (f"[DEBUG] Computed num_workers (formula result): { final } " ) # Log computed value
1641+ print (f"[DEBUG] Computed num_workers (formula result): { final } (computed= { computed if computed is not None else 'N/A' } ) " ) # Log computed value
16361642
16371643 try : # Notify via Telegram (non-blocking)
16381644 send_telegram_message (
0 commit comments