refactor: split mutex, add download queue, wire context cancellation
All checks were successful
CI / build (push) Successful in 53s
All checks were successful
CI / build (push) Successful in 53s
- Split single sync.Mutex into per-map mutexes (activeJobs, stepStates, rateLimiter, pendingInput, cancelFuncs) to reduce contention - Add download semaphore (channel-buffered, 3 concurrent) as worker pool - Add cancelFuncs map with context cancellation wired into download goroutines for clean shutdown - Replace playlist busy-poll (500ms sleep loop) with synchronous runDownload + Done channel for completion tracking - Use full UUID for job IDs instead of 8-char prefix - Download thumbnail URL to temp file before sending (InputFileUpload) - Change MAX_FILE_SIZE_MB default from 2000 to 50 - Clean up cancel funcs after normal download completion
This commit is contained in:
@@ -29,7 +29,7 @@ func main() {
|
||||
token := os.Getenv("BOT_TOKEN")
|
||||
dbPath := getEnvDefault("DB_PATH", "data/uptodown.db")
|
||||
downloadDir := getEnvDefault("DOWNLOAD_DIR", "/tmp/uptodown")
|
||||
maxFileSizeMB := getEnvIntDefault("MAX_FILE_SIZE_MB", 2000)
|
||||
maxFileSizeMB := getEnvIntDefault("MAX_FILE_SIZE_MB", 50)
|
||||
cookiesFile := os.Getenv("COOKIES_FILE")
|
||||
|
||||
if token == "" {
|
||||
|
||||
Reference in New Issue
Block a user