首页 > 解决方案 > 将 sidekiq/redistogo 与 heroku 一起使用?

问题描述

我遵循了sideqik gem tutorial docs和heroku Redistogo addon docs

初始化程序/sidekiq.rb:

Sidekiq.configure_server do |config|
  config.redis = { url: 'redis://redistogo:xxx.redistogo.com:10076/' }
end

Sidekiq.configure_client do |config|
  config.redis = { url: 'redis://redistogo:xxx.redistogo.com:10076/' }
end

应用程序/工人/hard_woker.rb:

class HardWorker
  include Sidekiq::Worker
  def perform(shop_domain, webhook)
   #performing stuffs
end

我正在投入后台工作的 Webhook(至少尝试):

class OrdersCreateJob < ActiveJob::Base
  def perform(shop_domain:, webhook:)
    shop = Shop.find_by(shopify_domain: shop_domain)
    shop.with_shopify_session do
      HardWorker.perform_async(shop_domain, webhook)
    end
  end
end

档案:

hardworker: bundle exec sidekiq -t 25

控制台中没有错误。

这里有什么问题,我错过了什么吗?

我的队列:

irb(main):003:0> Sidekiq::Queue.all
=> [#<Sidekiq::Queue:0x000055b53a2d0920 @name="default", @rname="queue:default">]

我认为这意味着队列中没有任何内容?

我的目标是将我所有的 CreateOrderWebhook 代码(将近 500 行)放到后台作业中,以减轻应用程序的压力并允许 webhook/防止 webhook 被阻止

标签: ruby-on-railsrubyherokuredissidekiq

解决方案


推荐阅读