Heroku는 백그라운드 작업자와 cron (매일, 매시간)을 지원하지만 코드를 1 초에 한 번 실행하는 방법을 찾고 있습니다.어떻게 Heroku에서 코드를 초당 한 번 실행합니까?
내가 Heroku에서 게임 백엔드를 가지고 있고 얼마 후 플레이어 동작을 시간 종료하려고한다고 가정 해 봅시다.
어떻게 해결할 수 있습니까?
Heroku는 백그라운드 작업자와 cron (매일, 매시간)을 지원하지만 코드를 1 초에 한 번 실행하는 방법을 찾고 있습니다.어떻게 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
[clockwork] (https://github.com/tomykaira/clockwork)와 같은 라이브러리는이 시나리오에서 유용하지만 별도의 dyno를 실행해야합니다. –
일부 Javascript 폴링은 매초마다 일부 코드를 실행하는 Heroku 작업자의 대안 일 수 있습니다. 주어진 시간 후에 AJAX 호출을 수행하는 것.
매초마다 일부 코드를 실행하는 Heroku 작업자를 실행하는 것이 비용면에서 효율적이거나 효율적이지는 않습니다. 아마도 내 머리 위로 떨어져
:
var codeToRun = function(){
$.ajax({
url: '/test',
success: function(){
alert('Code was run.');
}
)};
}
timer = window.setInterval(codeToRun,1000);
은 아마 한 번이 작업 두 번째를 실행하지만 아무것도하지 않는 아마존 EC2 인스턴스를 실행 고려해야합니다. US East는 지리적으로 Heroku 인스턴스에 국한되며, 다른 비 Heroku 지원 서비스도 실행할 수 있습니다. –