假设我有一个跟踪使用计数器的Rails 4应用程序,所以我的控制器有一个方法record_usage,可以从视图中交互式地调用它来立即检索和记录使用计数器。但是,我也希望定期运行相同的方法,所以我提取的代码放到一个独立的文件名为.rb并通过cron与是否有可能使用runner运行Rails控制器方法?
rails r -e production record_usage.rb
我的问题定期运行,它是:在利益“干”我可以直接从'record_usage.rb'中调用控制器方法,而不是在.rb文件中保存record_usage代码的单独副本?
听起来像违反了“单一责任”......任何原因你不能将该方法提取到单独的帮助程序/库/模型并从那里使用它?如果不围绕请求假设来解决可能出现的问题(取决于您的控制器实际制定的假设),您无法轻松完成此任务。 – PinnyM
您可能想要使用[sidekiq](https://github.com/mperham/sidekiq)或[delayed_job](https://github.com/collectiveidea/delayed_job)之类的内容。此外,你可以将你的代码包装在一个类中;一个模型(没有ActiveRecord)应该没问题。 – rdupz