ruby-on-rails-4 - Sidekiq worker 未定义的局部变量或方法

标签 ruby-on-rails-4 redis sidekiq

我正在尝试将 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/

相关文章:

redis - 两个或多个排序集的交集

redis - 如何使用 Redis 实现临时排行榜?

ruby-on-rails - 如何拥有线程安全的 Rails 初始化器?

postgresql - 使用 Rails、Postgres 和 Sidekiq 导入 CSV

mysql - Active Record 精度小数值被截断

ruby-on-rails - 无法修改关联 'User#roles',因为源反射类 'Role' 通过 :has_many 关联到 'Profile'

c# - DataTable 到 Redis 缓存

ruby-on-rails - 降低路线的复杂性

ruby-on-rails-4 - 在发送 rails 4 之前保存每封电子邮件

ruby-on-rails - 使用 sidekiq 为 activerecord 类编写 worker