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.
Dieser Beitrag hat noch keine Ergänzungen vom Autor.