Heroku支持后台工作者和cron(每天,每小时),但我正在寻找一种每秒运行一次代码的方法。
让我们说我在Heroku上有一个游戏后端,并希望在一段时间后暂停一些玩家行动。
你会如何解决这个问题?
答案 0 :(得分:1)
您应该尝试使用rufus调度程序:
安装宝石
gem install rufus-scheduler
确保将gem包含在bundler中,或者包含它。
然后你需要创建一个名为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
答案 1 :(得分:0)
某些Javascript轮询可能是每秒运行一些代码的Heroku工作者的替代方法。在给定的时间段后执行AJAX调用的东西。
运行Heroku工作者每秒运行一些代码似乎不是非常划算或高效。
在我的头顶,或许:
var codeToRun = function(){
$.ajax({
url: '/test',
success: function(){
alert('Code was run.');
}
)};
}
timer = window.setInterval(codeToRun,1000);