Heroku支持后台工作人员和cron(每天,每小时),但我正在寻找一种方法来每秒运行一次代码。如何在Heroku上每秒运行一次代码?
假设我在Heroku上有一个游戏后端,并且想要在一段时间后暂停某些玩家动作。
你会如何解决这个问题?
Heroku支持后台工作人员和cron(每天,每小时),但我正在寻找一种方法来每秒运行一次代码。如何在Heroku上每秒运行一次代码?
假设我在Heroku上有一个游戏后端,并且想要在一段时间后暂停某些玩家动作。
你会如何解决这个问题?
你应该尝试鲁弗斯调度:
安装宝石
gem install rufus-scheduler
确保您在成束或不过宝石你正在包括它。
然后您需要创建一个名为task_scheduler.rb
的文件并将其粘贴在initializers
目录中。
require 'rufus/scheduler'
scheduler = Rufus::Scheduler.start_new
scheduler.every '1s' do
puts "Test!"
#do something here
end
如果您有任何问题,你可以看到这个博客帖子:
http://intridea.com/2009/2/13/dead-simple-task-scheduling-in-rails?blog=company
像[发条](https://github.com/tomykaira/clockwork)这样的库在这种情况下也很有用,不过它需要单独的测试仪来运行。 – 2012-04-19 20:33:31
一些Javascript轮询可能是Heroku每秒运行一些代码的工作者的替代方案。在给定的时间段内执行AJAX调用的东西。
运行一名Heroku worker每秒运行一些代码似乎并不是非常符合成本效益或效率。
关闭我的头顶,也许是:
var codeToRun = function(){
$.ajax({
url: '/test',
success: function(){
alert('Code was run.');
}
)};
}
timer = window.setInterval(codeToRun,1000);
也许你应该考虑运行在Amazon EC2实例,做什么,但运行此任务一次第二。美国东部地区的Heroku实例在地理位置上,您也可以运行其他非Heroku支持的服务。 – 2011-04-01 08:39:10