ruby轨道 – 轨道定期任务

前端之家收集整理的这篇文章主要介绍了ruby轨道 – 轨道定期任务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 ruby在rails应用程序,我试图找到一种方法来运行一些代码每几秒钟.

我已经使用cron或cron-like实现发现了许多信息和想法,但是这些只是精确到了一分钟,和/或需要外部工具.我想每15秒左右踢任务,我希望它在应用程序中完全自包含(如果应用程序停止,任务停止,没有外部设置).

这被用于缓存数据的后台生成.每隔几秒钟,任务将汇集一些数据,然后将其存储在所有客户端请求使用的缓存中.任务相当缓慢,因此需要在后台运行,而不是阻止客户端请求.

我相当新的ruby,但有一个强大的perl背景,我将解决这个方法将是创建一个间隔定时器&处理程序,它分叉,运行代码,然后在完成后退出.
只需模拟客户端请求,并使rails控制器自身叉起来更好.这样我可以通过点击它的URI来启动任务(虽然这个任务将会每隔几秒钟运行一次,但我怀疑我将会需要,但是可能会有将来的使用).尽管只要控制器调用周期性任务调度程序调用任何方法(一旦有一个调用),这将是微不足道的.

解决方法

一般来说,没有内置的方式,我知道在应用程序中创建一个周期性的任务. Rails是建立在Rack上的,它期望接收http请求,做某事,然后返回.所以你只需要自己管理周期性的工作.

我认为考虑到您需要运行任务的频率,一个体面的解决方案可能只是为自己写一个简单的耙子任务,永久循环,并在启动应用程序的同时,使用像Foreman这样的东西来启动它.工头经常被用来管理启动/关闭后台工作人员及其应用程序.在生产中,您可能想使用别的东西来管理进程,如Monit.

原文链接:https://www.f2er.com/ruby/266516.html

猜你在找的Ruby相关文章