heroku上的API轮询bot

时间:2011-07-19 06:32:19

标签: ruby rubygems heroku bots

我想创建一个机器人,每分钟向某个API网址发出API请求。然后,如果数据条目在API提要中与其名称相比发生了变化,则需要对特定用户执行ping操作。我想在Heroku上寻找免费的解决方案。这可以实现吗?

2 个答案:

答案 0 :(得分:2)

是的,heroku支持瘦作为Web服务器,启用了EventMachine,因此一个简单的方法是编写一个快速的sinatra应用程序并使用EM.add_periodic_timer进行API调用。当您将此sinatra应用程序部署到heroku时,默认情况下它将使用thin,因此不需要额外的配置。假设您的config.ru正确,您可以通过thin start -p 4567进行测试。假设您的应用位于app.rb中,这是一个非常标准的:

require 'bundler/setup'
Bundler.require :default
require File.expand_path('app', File.dirname(__FILE__))

run Sinatra::Application

答案 1 :(得分:2)

我目前在heroku上免费查看某些网站的状态。秘密?鲁弗斯-Scheduer。

安装宝石

 gem install rufus-scheduler

确保将gem包含在bundler中,或者包含它。

然后你需要创建一个名为task_scheduler.rb的文件并将其粘贴在initializers目录中。

 require 'rufus/scheduler'
 scheduler = Rufus::Scheduler.start_new

 scheduler.every '1m' do
    url = "http://codeglot.com"
    response = Net::HTTP.get_response(URI.parse(url))
    #do stuff with response.body
 end

如果您有任何问题,可以查看此博文:

http://intridea.com/2009/2/13/dead-simple-task-scheduling-in-rails?blog=company