小编Tom*_*mek的帖子

如何使用ShopifyAPI(Ruby on Rails)有效地更新许多ShopifyAPI :: Product实例?

我正在编写一个应用程序,该应用程序将位于供应商专有的库存管理系统与其Shopify商店之间。该应用程序将根据库存管理系统生成的新数据定期更新Shopify。它还将提供Shopify Webhooks的端点。

我目前正在做这样的事情(伪红宝石,省略了很多东西):

  def update_product_with_proxy(product_proxy)
    product_proxy.variant_proxies.dirty.each do |variant_proxy|
      update_variant_with_proxy(variant_proxy)
    end

    if product_proxy.dirty_proxy
      shopify_product = ShopifyAPI::Product.find(product_proxy.shopify_id)
      shopify_product.update_attributes({some attributes here})
    end
  end
Run Code Online (Sandbox Code Playgroud)

别处:

  def update_variant_with_proxy(variant_proxy)
    shopify_variant = ShopifyAPI::Variant.find(variant_proxy.shopify_id)
    shopify_variant.update_attributes({some attributes here})
  end
Run Code Online (Sandbox Code Playgroud)

这似乎效率很低,因为我必须先获取每个更新的ShopifyAPI :: Product和ShopifyAPI :: Variant,然后才能更新它们(我的ID在本地缓存)。一个更新周期大约需要25分钟,更新周期将更新24个产品的16个变体。Rails花了不到2秒的时间来更新我的产品/各种代理。其余99%的时间都花在与Shopify交谈上。我一定做错了什么。

鉴于我知道远程对象的ID,有没有一种方法可以直接更新它而不必先获取它?

干杯,-tomek

ruby-on-rails shopify

2
推荐指数
1
解决办法
1333
查看次数

标签 统计

ruby-on-rails ×1

shopify ×1