【发布时间】:2011-06-10 09:39:00
【问题描述】:
我有一个使用回形针从表格网站加载汽车图像的 rake 任务。图像作为远程链接存储在数据库中。
这是我的代码,我使用的是 ruby 1.8.7、rails 2.3.8 和 DB mysql。
namespace :db do
task :load_photo => :environment do
require 'rubygems'
require 'open-uri'
require 'net/http'
require 'paperclip'
begin
images =Website.find(:all,:conditions=>["image_url is not null"])
images.each do |photo|
url = URI.parse(photo.image_url)
Net::HTTP.start(url.host, url.port) do |http|
if http.head(url.request_uri).code == "200"
Car.update_attribute(:photo,open(url))
end
end
end
rescue Exception => e
end
end
end
通过 db:load_photo 运行上述 rake 任务。在我的表(网站)中有 60,000 行。仅运行最多 10000 行的 Rake 任务,执行终止并显示错误消息 “执行已过期”。
谁能帮我解决这个问题?
提前致谢。
【问题讨论】:
-
试试
read_timeoutruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/… -
你能显示 rake db:load_photo --trace 的输出吗
标签: ruby-on-rails rake paperclip