ruby轨道 – 轨道定期任务
我有一个
ruby在rails应用程序,我试图找到一种方法来运行一些代码每几秒钟.
我已经使用cron或cron-like实现发现了许多信息和想法,但是这些只是精确到了一分钟,和/或需要外部工具.我想每15秒左右踢任务,我希望它在应用程序中完全自包含(如果应用程序停止,任务停止,没有外部设置). 这被用于缓存数据的后台生成.每隔几秒钟,任务将汇集一些数据,然后将其存储在所有客户端请求使用的缓存中.任务相当缓慢,因此需要在后台运行,而不是阻止客户端请求. 我相当新的ruby,但有一个强大的perl背景,我将解决这个方法将是创建一个间隔定时器&处理程序,它分叉,运行代码,然后在完成后退出. 解决方法
一般来说,没有内置的方式,我知道在应用程序中创建一个周期性的任务. Rails是建立在Rack上的,它期望接收http请求,做某事,然后返回.所以你只需要自己管理周期性的工作.
我认为考虑到您需要运行任务的频率,一个体面的解决方案可能只是为自己写一个简单的耙子任务,永久循环,并在启动应用程序的同时,使用像Foreman这样的东西来启动它.工头经常被用来管理启动/关闭后台工作人员及其应用程序.在生产中,您可能想使用别的东西来管理进程,如Monit. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |