我是rails的新手,我需要在rails中运行一个任务,这意味着有一个功能,需要在5分钟的时间间隔内调用?因为我正在使用原型,并且它在heroku上运行,所以我无法使用heroku运行任何付费插件,同时我读到,heroku有一个调度程序,它是免费的,但是只能以10分钟的间隔运行时间。所以我在想,为这个原型项目运行一个线程,即
这里编写一个线程,需要在睡眠5分钟后调用一个函数?还有如何在启动rails服务器时运行该线程?我可以通过proc文件启动该线程和服务器吗?这是正确的方法吗?
def test
end
t = Thread.new do
while true do
sleep 60
test()
end
end
t.join
答案 0 :(得分:0)
在我看来,你应该使用像whenever
这样的一些cronjob gem此gem将在config/schedule.rb
中创建一个文件。使用此文件,您可以调用任何rake任务,运行命令,甚至可以调用类的方法。
例如:
every 10.minutes do
# run rake task or call some class's method
end
但如果你坚持不使用cronjob相关的宝石,那么你应该使用像foreman这样的宝石
它易于使用。您可以从this blog或this railscast
了解相关信息修改强>
这SO question可能对您有所帮助......
最新编辑:
是的,可以看到here。它建议使用this add-ons并且它是免费的:)