我有一个
ruby在rails应用程序,我试图找到一种方法来运行一些代码每几秒钟.
我已经使用cron或cron-like实现发现了许多信息和想法,但是这些只是精确到了一分钟,和/或需要外部工具.我想每15秒左右踢任务,我希望它在应用程序中完全自包含(如果应用程序停止,任务停止,没有外部设置).
这被用于缓存数据的后台生成.每隔几秒钟,任务将汇集一些数据,然后将其存储在所有客户端请求使用的缓存中.任务相当缓慢,因此需要在后台运行,而不是阻止客户端请求.
我相当新的ruby,但有一个强大的perl背景,我将解决这个方法将是创建一个间隔定时器&处理程序,它分叉,运行代码,然后在完成后退出.
只需模拟客户端请求,并使rails控制器自身叉起来更好.这样我可以通过点击它的URI来启动任务(虽然这个任务将会每隔几秒钟运行一次,但我怀疑我将会需要,但是可能会有将来的使用).尽管只要控制器调用周期性任务调度程序调用任何方法(一旦有一个调用),这将是微不足道的.