2016-12-06 59 views
0

我想写一个rails的方法,每秒从Oanda获取Live黄金价格。定期执行调用Ruby On Rails

def price 
     client = OandaAPI::Client::TokenClient.new(:practice, "xxxxxxxxxx") 
     @prices = client.prices(instruments: %w(XAG_USD,XAU_USD,XPT_USD)).get 
end 

我想每秒调用一次这个方法。什么将是最好的办法?

+1

你已经在你的标签中提到了cron,你是否实现了它来每秒调用一次rake任务? – Sid

+0

是的,我试图通过使用宝石。没有运气;( –

+0

检查crontab日志。如果你正在使用linux,检查'/ var/log/syslog'为什么crons没有被触发。 – Sid

回答

0

我发现了多种方法。我可以做到这一点,而使用宝石像delayed_job gem whenever gem

或者我们可以写一个函数,并开始像一个线程。

while TRUE do 
price() 
end 
0

尝试将环境设置为发展

whenever --update-crontab --set environment=development 
0
  1. 你可以用一个循环做到这一点:
    while TRUE do price() end

  2. 您可以使用delayed_job gem

  3. 您可以使用whenever gem

如果每当不忘记运行命令whenever --update-crontab