sidekiq不处理工作,工作陷入队列

我有一个简单的应用程序,与twitter流api,sidekiq,独角兽和sinatra一起使用。 一切顺利,而不是……工作根本没有得到处理。 他们陷入了排队(我知道来自sidekiq网页用户界面)。

这是我的代码:

Procfile:

sidekiq: bundle exec sidekiq -C config/sidekiq.yml -e development -r ./lib/tweet_streamer.rb unicorn: bundle exec unicorn -c config/unicorn.rb redis: redis-stable/src/redis-server 

配置/ unicorn.rb:

 listen 5000, :tcp_nopush => true timeout 30 preload_app true GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true before_fork do |server, worker| end after_fork do |server, worker| end 

tweet_streamer.rb:

 require_relative "../config/tweetstream" require_relative "workers" class TweetStreamer client = TweetStream::Client.new client.on_enhance_your_calm do |s| puts "on_enhance_your_calm #{s}" end puts "onstream" client.userstream do |status| ## ## TODO: Some kind of log ## puts "start process" # TweetStatusWorker.perform_async(status.to_hash) Sidekiq::Client.push('class' => TweetStatusWorker, 'args' => ["a"]) puts "process started!" end end 

workers.rb

 require_relative "../config/sidekiq" require_relative 'workers/tweet_status_worker' 

config / sidekiq.rb:

 require 'sidekiq' Sidekiq.configure_client do |config| config.redis = { :size => 1 } end Sidekiq.configure_server do |config| config.redis = { :size => 6 } end 

工人:

 class TweetStatusWorker include Sidekiq::Worker def perform(status) logger.warn "I'm working on it!" end end 

我的sidekiq.yml:

  --- :pidfile: tmp/pids/sidekiq.pid development: :verbose: true :logfile: log/sidekiq_development.log 

我的config.ru:

 require "rubygems" require "sinatra" Bundler.require require File.expand_path '../twitter_module.rb', __FILE__ require 'sidekiq/web' run Rack::URLMap.new('/' => TwitterModule, '/sidekiq' => Sidekiq::Web) 

我的app类:

 require 'sinatra/base' class TwitterModule < Sinatra::Base end 

这是我在启动应用程序时收到的日志,我发了一条推文来启动流程,一切似乎都没问题。

 17:36:31 sidekiq.1 | started with pid 65599 17:36:31 unicorn.1 | started with pid 65600 17:36:31 redis.1 | started with pid 65601 17:36:31 redis.1 | [65601] 14 Oct 17:36:31.717 # Warning: no config file specified, using the default config. In order to specify a config file use redis-stable/src/redis-server /path/to/redis.conf 17:36:31 redis.1 | [65601] 14 Oct 17:36:31.718 * Max number of open files set to 10032 17:36:31 redis.1 | _._ 17:36:31 redis.1 | _.-``__ ''-._ 17:36:31 redis.1 | _.-`` `. `_. ''-._ Redis 2.6.16 (f132ada8/1) 64 bit 17:36:31 redis.1 | .-`` .-```. ```\/ _.,_ ''-._ 17:36:31 redis.1 | ( ' , .-` | `, ) Running in stand alone mode 17:36:31 redis.1 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 17:36:31 redis.1 | | `-._ `._ / _.-' | PID: 65601 17:36:31 redis.1 | `-._ `-._ `-./ _.-' _.-' 17:36:31 redis.1 | |`-._`-._ `-.__.-' _.-'_.-'| 17:36:31 redis.1 | | `-._`-._ _.-'_.-' | http://redis.io 17:36:31 redis.1 | `-._ `-._`-.__.-'_.-' _.-' 17:36:31 redis.1 | |`-._`-._ `-.__.-' _.-'_.-'| 17:36:31 redis.1 | | `-._`-._ _.-'_.-' | 17:36:31 redis.1 | `-._ `-._`-.__.-'_.-' _.-' 17:36:31 redis.1 | `-._ `-.__.-' _.-' 17:36:31 redis.1 | `-._ _.-' 17:36:31 redis.1 | `-.__.-' 17:36:31 redis.1 | 17:36:31 redis.1 | [65601] 14 Oct 17:36:31.719 # Server started, Redis version 2.6.16 17:36:31 redis.1 | [65601] 14 Oct 17:36:31.728 * DB loaded from disk: 0.010 seconds 17:36:31 redis.1 | [65601] 14 Oct 17:36:31.728 * The server is now ready to accept connections on port 6379 17:36:33 unicorn.1 | I, [2013-10-14T17:36:33.208428 #65600] INFO -- : Refreshing Gem list 17:36:33 unicorn.1 | I, [2013-10-14T17:36:33.813454 #65600] INFO -- : listening on addr=0.0.0.0:5000 fd=9 17:36:33 unicorn.1 | I, [2013-10-14T17:36:33.814790 #65600] INFO -- : master process ready 17:36:33 unicorn.1 | I, [2013-10-14T17:36:33.816138 #65607] INFO -- : worker=0 ready 17:36:33 sidekiq.1 | onstream 17:36:43 sidekiq.1 | start process 17:36:43 sidekiq.1 | process started! 

sidekiq日志中没有任何内容显然:

 2013-10-14T16:36:43Z 65599 TID-ouo5je95k INFO: Booting Sidekiq 2.15.1 using redis://localhost:6379/0 with options {:size=>6} 2013-10-14T16:37:32Z 65599 TID-ouo5je95k DEBUG: Terminating 4 actors... 

更新:

好的,我找到了。 流光是问题吗? 如果我在流光块之外运行工作,这很有效。 关于为什么要追加以及如何解决它的任何想法?