当前位置:  开发笔记 > 后端 > 正文

我有一个Rails任务:我应该使用script/runner还是rake?

如何解决《我有一个Rails任务:我应该使用script/runner还是rake?》经验,为你挑选了5个好方法。

对于临时 Rails任务,我们有一些实现替代方案,其中主要似乎是:

script/runner some_useful_thing

和:

rake some:other_useful_thing

我更喜欢哪个选项?如果有一个明显的喜欢那么,如果有的话,我应该考虑使用另一个?如果从来没有,那么为什么你认为它仍然存在于没有弃用警告的框架中?



1> Luke Francl..:

它们之间的区别在于script/runner引导Rails而Rake任务没有,除非你通过让任务依赖于它来告诉它:environment,如下所示:

task :some_useful_task => :environment do
  # do some useful task
end

由于启动Rails很昂贵,如果可以避免它,可能值得跳过.

除此之外,它们大致相同.我使用两者,但最近我使用script/runner了更多单独执行脚本.



2> esilver..:

FWIW似乎有一些动作远离使用脚本运行器而不是 rake:

更新(2009年4月25日):我建议使用rake任务而不是脚本/运行器来执行重复任务.

此外,根据这篇文章,您可以使用rake进行重复性任务就好了:

如果我希望这个在午夜时分在我的生产数据库上运行,我可能会写一个看起来像这样的cronjob:

0 0***cd/var/www/apps/rails_app/&&/usr/local/bin/rake RAILS_ENV = production utils:send_expire_soon_emails


我不确定一篇博文(遗憾的是它没有解释它的rake-vs-runner声称的原因)真的算是一个运动.
您的第一个链接已关闭,无法确定文章是否已被删除或仅重新安排了博客.

3> Alfred Fazio..:

至少可以说,将参数传递给rake任务是一个痛苦的屁股.您需要求助于环境变量或非常讨厌的参数系统,这些参数系统不直观并且有很多警告.

如果您的任务需要优雅地处理命令行参数,那么编写脚本是可行的方法.

Luke Francl提到脚本/跑者启动Rails.确实如此.但是,如果您不想启动rails,那么只需按原样运行脚本,而不使用script/runner.因此,脚本和rake任务之间唯一真正的区别在于它们的美学.选择适合自己的感觉.

我使用rake任务执行小任务(一行或两行).更复杂的东西进入脚本/目录.如果我认为其他开发人员希望代码在一个地方生活在另一个地方,我会打破这个规则.



4> Ben Walding..:

根据评论2进行更正.给他们业力!

FWIW - Rails 3.0+更改了在独立脚本中初始化Rails系统的方式.

require File.dirname(__FILE__) + '/config/environment'

如上所述,您还可以:

rails runner script/




















    
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有