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

发布于 2024-10-30 03:48:51 字数 128 浏览 2 评论 0原文

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

假设我在 Heroku 上有一个游戏后端,并且希望在一段时间后让某些玩家操作超时。

你会如何解决这个问题?

Heroku supports background workers and cron (daily, hourly) but I'm looking for a way to run code once a second.

Let's say I have a game backend on Heroku and want to timeout some player action after some time.

How would you solve for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

看春风乍起 2024-11-06 03:48:51

您应该尝试 rufus 调度程序:

安装 gem

 gem install rufus-scheduler

确保您将 gem 包含在捆绑器中,或者以任何方式包含它。

然后,您需要创建一个名为 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

You should try rufus scheduler:

Install the gem

 gem install rufus-scheduler

Make sure you include the gem in bundler or however you are including it.

Then you need to create a file called task_scheduler.rb and stick this in you initializers directory.

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

 scheduler.every '1s' do

      puts "Test!"      
      #do something here

 end

If you have any trouble you can see this blog post:

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

比忠 2024-11-06 03:48:51

一些 Javascript 轮询可能是每秒运行一些代码的 Heroku Worker 的替代方案。在给定时间段后执行 AJAX 调用的东西。

运行 Heroku 工作线程每秒运行一些代码似乎并不具有巨大的成本效益或效率。

在我的脑海里,也许:

var codeToRun = function(){
    $.ajax({
          url: '/test',
          success: function(){
            alert('Code was run.');
          }
    )};
}

timer = window.setInterval(codeToRun,1000);

Some Javascript polling might be an alternative to a Heroku worker that runs some code every second. Something that performs an AJAX call after a given period of time.

Running a Heroku worker to run some code every second doesn't seem hugely cost effective or efficient.

Off the top of my head, perhaps:

var codeToRun = function(){
    $.ajax({
          url: '/test',
          success: function(){
            alert('Code was run.');
          }
    )};
}

timer = window.setInterval(codeToRun,1000);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文