編集、より複雑なジョブを実行するために使用:それは実際には本当に簡単だった、私は、セットアップSidekiqとRedisのHerokuの上、私はそれが非常にシンプルで動作するように取得することができるよきsite
とtoken
Sidekiqが
に合格するのを忘れこのようなジョブ:
order_worker.rb
class OrderWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(num_orders)
x=3*5
end
end
しかし、もっと複雑なジョブはSidekiqのWeb UIに応じて失敗し続けます。どういうわけかShopifyAPIとFakerを含める必要がありますか?私は何が実行されているかについては明確ではない。アプリ全体は、宝石とすべてが労働者のdynoで作成されていますか?
order_worker.rb
class OrderWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(num_orders)
include ShopifyAPI
include Faker
# Initialize session
session = ShopifyAPI::Session.new(site, token)
ShopifyAPI::Base.activate_session(session)
#Create orders
num_orders.times do
new_order = ShopifyAPI::Order.new(
:line_items => [
ShopifyAPI::LineItem.new(
:quantity => 1,
:variant_id => 25701798472
)
]
)
new_order.billing_address = ShopifyAPI::BillingAddress.new(:name => Faker::Name.name, :zip => zips[rnd], :country => 'United States', :province => states[rnd], :address1 => Faker::Address.street_address, :city => Faker::Address.city)
new_order.email = r.rand(36**2).to_s(36) + '@yahoo.com'
new_order.created_at = Faker::Time.backward(390, :evening)
new_order.total_price = Faker::Number.decimal(3, 2)
new_order.save
@errs = @errs + new_order.errors.full_messages
sleep 0.03
end
end
end
おそらくperformメソッドに 'include'行があるでしょう、私はあなたのログインをすべてクラスにカプセル化してから、あなたのクラスをperformメソッドで実行することをお勧めします –