你如何在Heroku上每秒运行一次代码?

时间:2011-04-01 06:17:17

标签: heroku

Heroku支持后台工作者和cron(每天,每小时),但我正在寻找一种每秒运行一次代码的方法。

让我们说我在Heroku上有一个游戏后端,并希望在一段时间后暂停一些玩家行动。

你会如何解决这个问题?

2 个答案:

答案 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);