2016-05-01 61 views
0

如果我们的rails应用程序部署到heroku,并且我们使用sleep(2.minutes)排队任务,这是否会占用连接或内存或其他内容?Rails Sleep()使用并发连接吗?

我在问,因为heroku对并发连接有限制。如果有25个用户拨打sleep(2.minutes)方法会怎么样,那么这会为下一个2 minutes使用25个并发连接吗?

+1

调用'一个Rails应用程序内sleep'将会造成巨大的问题,因为像你这样的推论就会堵塞这一进程。 – tadman

回答

1

我建议查看使用ActiveJob排队这个任务。退房Resque或Sidekiq。也检查出http://guides.rubyonrails.org/active_job_basics.html。这将是一个更“Rails”的做法。

尝试YourJob.set(wait: 2.minutes).perform_later()

+1

但是,如果这是一项时间关键的任务,那么主动工作就不那么准确了?等待2分钟与睡眠2分钟不同。我相信积极的工作,它会等待2分钟,然后如果这个过程是免费的执行它,否则一直在队列中等待。 – Alfie

+0

我相信执行相对于perform_later可以帮助解决这个问题。 –

+0

仍然,我认为,因为活跃的工作是钢轨的一部分,并且运行在与钢轨相同的过程中。可能有某种差异。我不确定。这只是我听到并且在回来之前阅读的一些内容。我没有任何参考证实事实。 – Alfie