Rake 任务句柄 404
Rake task handle 404
我正在使用 rake 任务从一个 csv 中获取数据,使用该数据调用 shopify api,并将响应保存到另一个 CSV。问题是我没有适当的错误处理程序,因此如果 shopify api 找不到我提供的资源,整个任务就会中止。处理错误的最佳方法是什么,以便如果在 Shopify 中找不到资源,只需跳过它并继续下一行?
下面代码中调用 shopify API 的行是:
variant = ShopifyAPI::Variant.find(vid)
namespace :replace do
desc "replace variant id with variant sku"
task :sku => :environment do
file="db/master-list-3-28.csv"
newFile = Rails.root.join('lib/assets', 'newFile.csv')
CSV.open(newFile, "a+") do |csv|
CSV.foreach(file) do |row|
msku, namespace, key, valueType, value = row
valueArray = value.split('|')
newValueString = ""
valueArray.each_with_index do |v, index|
recArray = v.split('*')
handle = recArray[0]
vid = recArray[1]
newValueString << handle
newValueString << "*"
# use api call to retrieve variant sku using handle and vid
#replace vid with sku and save to csv
variant = ShopifyAPI::Variant.find(vid)
sleep 1
# puts variant.sku
newValueString << variant.sku
if index < 2
newValueString << "|"
end
end
#end of value save the newvaluestring to new csv
csv << [newValueString]
end
end
end
end
这里有一个简单的方法来完成它:
begin
variant = ShopifyAPI::Variant.find(vid)
rescue
next
end
如果出现异常,救援中的事情就会发生。
我正在使用 rake 任务从一个 csv 中获取数据,使用该数据调用 shopify api,并将响应保存到另一个 CSV。问题是我没有适当的错误处理程序,因此如果 shopify api 找不到我提供的资源,整个任务就会中止。处理错误的最佳方法是什么,以便如果在 Shopify 中找不到资源,只需跳过它并继续下一行?
下面代码中调用 shopify API 的行是:
variant = ShopifyAPI::Variant.find(vid)
namespace :replace do
desc "replace variant id with variant sku"
task :sku => :environment do
file="db/master-list-3-28.csv"
newFile = Rails.root.join('lib/assets', 'newFile.csv')
CSV.open(newFile, "a+") do |csv|
CSV.foreach(file) do |row|
msku, namespace, key, valueType, value = row
valueArray = value.split('|')
newValueString = ""
valueArray.each_with_index do |v, index|
recArray = v.split('*')
handle = recArray[0]
vid = recArray[1]
newValueString << handle
newValueString << "*"
# use api call to retrieve variant sku using handle and vid
#replace vid with sku and save to csv
variant = ShopifyAPI::Variant.find(vid)
sleep 1
# puts variant.sku
newValueString << variant.sku
if index < 2
newValueString << "|"
end
end
#end of value save the newvaluestring to new csv
csv << [newValueString]
end
end
end
end
这里有一个简单的方法来完成它:
begin
variant = ShopifyAPI::Variant.find(vid)
rescue
next
end
如果出现异常,救援中的事情就会发生。