我正在尝试将 Sidekiq 与我的应用程序一起使用,但出于某种原因,我得到了一个 undefined local variable or method "worker" for #<SolutionController:0xb55bc358>
我为 Sidekiq 网络用户界面安装了 sidekiq、sinatra 和 slim,但它没有注册任何东西。我现在确实让 sidekiq 在另一个终端窗口中运行。
worker 电话:
worker.perform_async(@user)
我的 worker :
# app/workers/worker.rb
class worker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(s_user)
user = $client.user_timeline(s_user, exclude_replies: 1,include_rts: 1 ).take(10)
user.each do |t|
array_list = $client.retweeters_of(t.id)
end
limited_list = array_list
array = []
hash = {}
limited_list.each do |g|
hash = {:key => g.followers_count, :value => g.profile_image_url.to_s}
array.push(hash)
end
array.sort_by! {|h| h[:key]}
array.reverse!
final = array.take(10)
$redis.set("#{hash[:value]}", "#{hash[:value]}")
end
end
谢谢
最佳答案
我建议使用更具描述性的名称,并使用适当的大小写。尝试将类重命名为 MyWorker
,将文件重命名为 my_worker.rb
并调用 MyWorker.perform_async(@user)
关于ruby-on-rails-4 - Sidekiq worker 未定义的局部变量或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23176344/