Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Vor kurzem stieß ich beim Deploy eines Rails-Apps auf Coolify auf einen Fehler, der nicht sofort offensichtlich war. Sidekiq startet, verbindet sich mit Redis, fällt aber sofort mit folgendem Fehler:
ArgumentError: falsche Anzahl von Argumenten (gegeben 1, erwartet 0) /gems/connection_pool-3.0.2/lib/connection_pool/timed_stack.rb:62:in `pop' /gems/sidekiq-7.3.9/lib/sidekiq/scheduled.rb:226:in `initial_wait'
Ursache
Das Gem connection_pool wurde auf Version 3.0 aktualisiert, wo sich die API der Methode pop geändert hat - jetzt akzeptiert sie keine Argumente mehr. Sidekiq 7.3.x ruft sie immer noch auf die alte Weise mit einem Argument auf.
Bundler zieht automatisch die neueste Version von connection_pool, und der Sidekiq-Scheduler fällt sofort aus.
Fix
Fügen Sie im Gemfile eine Versionsbeschränkung hinzu:
gem 'connection_pool', '~> 2.4'
Dann:
bundle update connection_pool
Dies installiert die letzte kompatible Version (2.5.5), und Sidekiq wird korrekt funktionieren.
Wenn Ihr Sidekiq startet, aber sofort mit ArgumentError in connection_pool abstürzt - überprüfen Sie die Version. Dies ist ein klassischer Fall, in dem eine transitive Abhängigkeit alles kaputt macht, ohne dass Änderungen an Ihrem Code vorgenommen wurden.
Gefällt dir?Reagieren
🧵
Dieser Beitrag hat noch keine Ergänzungen vom Autor.