gpt4 book ai didi

ruby-on-rails-3 - 没有加载 rails 环境的 ruby​​ resque

转载 作者:IT王子 更新时间:2023-10-29 06:00:55 24 4
gpt4 key购买 nike

我有一个 resque worker,它工作得很好,但速度太慢了。这样做的主要原因是我正在使用 activerecord 并且必须加载整个环境,这至少需要 10-20 秒才能加载(我不会一直保持运行的工作人员,因为我正在使用 Heroku 并支付工作人员运行的时间)。我正在使用 resque worker 从外部网站抓取和解析数据,然后将数据转储到我的数据库中。

我的问题是我是否应该重写该方法以不使用 Rails 而是使用 DataMapper?或者其他比 activerecord 加载速度更快的东西。

或者如果我应该提取代码(使用 ActiveRecord)来确定如何处理外部数据并将其移出 worker 并返回到应用程序中?

希望这是有道理的。

最佳答案

我也遇到了同样的问题。你可以在 rake resque:setup rake task 上设置你的环境

我试过了。假设我的 rake resque 任务在 lib/tasks/resque.rake

require "resque/tasks"

task "resque:setup" do
root_path = "#{File.dirname(__FILE__)}/../.."

db_config = YAML::load(File.open(File.join(root_path,'config','database.yml')))["development"]
ActiveRecord::Base.establish_connection(db_config)

require "#{root_path}/app/workers/photo_downloader.rb" #workers

#Dir.glob("#{root_path}/app/models/*").each { |r| puts r; require r } #require all model

require "#{root_path}/app/models/photo.rb" # require model individually
end

我还没有完全成功,因为我使用了需要 rails 环境的 Paperclip gem

关于ruby-on-rails-3 - 没有加载 rails 环境的 ruby​​ resque,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com