使用ActionMailerasynchronous发送延迟的电子邮件时,我一直在使用SSL_read: cert already in hash table的消息得到一个OpenSSL::SSL::SSLError消息。 我们使用Sidekiq将所有电子邮件asynchronous发送出去。 当在Sidekiq GitHub仓库中提出这个问题时,我被告知Sidekiq不知道或pipe理SSL连接。 我们的应用程序在OpenSSL 0.9.8k 25 Mar 2009运行OpenSSL 0.9.8k 25 Mar 2009 Heroku上运行。 我们在其他工作中多次看到这个错误,并且发现有时工作得到处理,但是有时候却没有。 这是一个OpenSSL线程问题,其中多个Sidekiq线程正在尝试使用相同的SSL连接? 有一个解决这个问题吗? 这是我们得到的堆栈跟踪: [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/openssl/buffering.rb:175:in `sysread_nonblock` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/openssl/buffering.rb:175:in `read_nonblock` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/protocol.rb:153:in `rbuf_fill` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/protocol.rb:144:in `readline` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/smtp.rb:932:in `recv_response` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/smtp.rb:903:in `block in data` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/smtp.rb:942:in `critical` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/smtp.rb:896:in `data` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/smtp.rb:663:in `block in send_message` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/smtp.rb:852:in `rcptto_list` [PROJECT_ROOT]/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/smtp.rb:663:in `send_message` [PROJECT_ROOT]/vendor/bundle/ruby/2.0.0/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:113:in `block in deliver!` […]
我在我的rails应用程序中使用sidekiq。 默认情况下,任何人都可以通过在URL后添加“/ sidekiq”来访问Sidekiq。 我想密码保护/只authenticationsidekiq部分。 我怎样才能做到这一点?
在我的sidekiq仪表板中,我在左边看到一个带有计数器的盒子 Processed 168 Failed 111 Busy 0 Scheduled 0 Retries 0 Enqueued 0 我如何将它们重置为0?
我有这个工人永远跑着。 class Worker include Sidekiq::Worker sidekiq_options queue: "infinity", retry: true def perform(params) # … self.class.perform_in(30.seconds, params) end end 问题是我像这样启动工人。 config/initializers/load_workers.rb Rails.application.config.after_initialize do if ENV["SIDEKIQ"] == "1" Worker.perform_async({}) end end 用这个来启动sidekiq SIDEKIQ=1 sidekiq –verbose –environment production -C config/sidekiq.yml 。 这意味着老工人要停下来,不pipe是现在正在运行的那些工人,还是那些正在重新安排的人。 我尝试在启动时运行(在加载新作品之前),但是没有奏效。 q = [] q += Sidekiq::RetrySet.new.select { |job| job.klass.match(/Worker/) } q += Sidekiq::Queue.new("infinity").select { |job| […]
我在Rails应用程序中使用sidekiq作为后台任务。 现在工作的数量变多了,所以我想清除所有的工作。 我在控制台中尝试了以下命令 Sidekiq::Queue.new.clear 但是它给了以下错误。 NameError: uninitialized constant Sidekiq::Queue 我如何清除sidekiq的所有工作?
我习惯于使用delayed_jobs方法进入控制台查看队列中的内容,以及在需要时清除队列的简易性。 Sidekiq中有类似的命令吗? 谢谢!
我目前使用Resque作为我的后台进程,但是最近我听到了很多关于sidekiq的huff-buff。 任何人都可以比较/区分吗? 特别是我想知道是否有一种方法来监视程序是否在sidekiq完成一项工作