ruby-on-rails - 渲染状态:200 使用 sidekiq 等后台作业
问题描述
我正在处理 Shopify 订单创建 webhook,它会触发多次。
def perform(shop_domain:, webhook:)
shop = Shop.find_by(shopify_domain: shop_domain)
found = false
order_item_ids = []
webhook['line_items'].each do |line_item|
line_item['properties'].each do |property|
if property['name'] == 'BJ_PROD'
found = true
order_item_ids << line_item['product_id']
end
end
end
if found
@order = Order.create({
shop: shop,
shopify_order_id: webhook["id"],
status: 'Ordered',
sent_to_admin: false,
order_details: webhook
})
end
session = ShopifyAPI::Session.new(shop.shopify_domain, shop.shopify_token)
session = ShopifyAPI::Base.activate_session(session)
order_item_ids.each do |order_item_id|
product = ShopifyAPI::Product.find(order_item_id)
product.published_at = nil
product.save!
end
shop.with_shopify_session do
end
render status: 200, json: @order.to_json
end
我正在尝试在我的 OrdersCreateJob 类中使用render status: 200和head :ok但它在后台作业中使用时会出错。有没有人知道如何处理这种情况?
解决方案
推荐阅读
- python - 更新散景中的多个标签
- sockets - ZVT 终端交易被 ECR 拒绝
- mongodb - 使用 Spring Boot 从 Mongodb 获取嵌套列表
- javascript - 按下提交后插入的值消失
- c# - 使用 ASP.NET Core MVC 将带有文件的数据发布到 api (ASP.NET Core Web API)
- android - 在 Android 5.x 和 4.x w 上找不到证书路径的信任锚。让我们在服务器上加密
- go - golint 执行不返回任何内容
- wso2 - 如何在 API 3.0.0 和 BPS 中配置用户注册工作流程?
- haskell - 创建包含列表的数据类型并在其上定义函数
- redis - redisearch FT.SEARCH 的搜索复杂度?