Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 扩展能够访问外部API的应用程序_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 扩展能够访问外部API的应用程序

Ruby on rails 扩展能够访问外部API的应用程序,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用beanstalkd后台处理对facebook graph api的api调用,我希望该应用程序能够更新,即每10分钟点击一次facebook api以获取信息。我考虑创建一个简单的脚本,从db(FBID/URL)加载必要的信息,在beanstalkd中对作业进行排队,然后休眠9分钟。如果内存消耗过大,可以使用God来确保脚本继续运行/重新启动 然后我开始阅读关于DRB的文章,想知道是否有一种方法/需要将两者结合起来 我在rubyonrails中询问,得到了cron和正则rb脚本作为两

我正在使用beanstalkd后台处理对facebook graph api的api调用,我希望该应用程序能够更新,即每10分钟点击一次facebook api以获取信息。我考虑创建一个简单的脚本,从db(FBID/URL)加载必要的信息,在beanstalkd中对作业进行排队,然后休眠9分钟。如果内存消耗过大,可以使用God来确保脚本继续运行/重新启动

然后我开始阅读关于DRB的文章,想知道是否有一种方法/需要将两者结合起来


我在rubyonrails中询问,得到了cron和正则rb脚本作为两个选项。只是想知道是否有更好的方法。

为了配置的简单性,我推荐使用cronjob,它调用一个rake任务来处理作业排队

也是上帝的一个很好的替代品,对于进程监控来说,它似乎更稳定,内存消耗更少

对于延迟的作业,您需要将以下内容添加到部署脚本中(假设您计划使用capistrano进行部署)


我必须从延迟的工作gem中提取这些recipes来运行它们。

我使用beanstalkd作为后台队列。延迟的_作业依赖于Rails,更不用说它每x秒轮询一次db。正如问题中提到的,在irc中讨论了使用cron,我正在寻找一些新的想法。
namespace :delayed_job do
  def rails_env
   fetch(:rails_env, false) ? "RAILS_ENV=#{fetch(:rails_env)}" : ''
  end

  desc "Stop the delayed_job process"
   task :stop, :roles => :app do
   run "cd #{current_path};#{rails_env} script/delayed_job stop"
  end

  desc "Start the delayed_job process"
    task :start, :roles => :app do
    run "cd #{current_path};#{rails_env} script/delayed_job start"
  end

  desc "Restart the delayed_job process"
    task :restart, :roles => :app do
    run "cd #{current_path};#{rails_env} script/delayed_job stop"
    run "cd #{current_path};#{rails_env} script/delayed_job start"
  end
end