我把一个收割机放到一个耙子任务中,以杀死一些额外产生的ruby任务,因为它们偶尔会以某种方式蔓延。 system "ps aux | grep 'namespace:taskname' | grep ruby | grep -v grep | awk '{print $2}' | xargs kill -9; echo 'Reaped old namespace:taskname processes.'" 我想添加grep -v $PID_OF_CURRENT_TASK ,只是为了确保我不杀死当前正在运行的任务。 我如何获得PID?
一个星期前,我已经开始在Ruby上的我的教程,我有一个疑问,请指导我的家伙….! 什么是耙子,它是如何在轨道中使用的?
我有一个从另一个rake任务调用的rake任务。 在这个rake任务中,我需要询问用户一些文本input,然后根据答案继续,或者停止一切继续(包括调用rake任务)。 我怎样才能做到这一点?
我知道你可以通过input查看所有可能的耙子任务 rake -T 但是我需要知道一个任务究竟是做什么的。 从输出中,我怎样才能find一个真正有这个任务的源文件? 例如,我试图finddb:schema:dump任务的源代码。
比方说,我有这样的rakefile: file 'file1' => some_dependencies do sh 'external tool I do not have control over, which sometimes fail to create the file' ??? end task :default => 'file1' do puts "everything's OK" end 现在,如果我没有代替???,我会得到OK消息,即使外部工具无法生成文件。 什么是正确的方法来通知耙,'文件1'任务失败,它应该中止(希望提出一个有意义的消息,如哪个任务失败) – 我现在能想到的唯一想法是提出一个例外,但那只是看起来不正确。 PS该工具始终返回0作为退出代码。
我可以在耙子中使用辅助方法吗?
这两个命令是否相同? 如果不是,有什么区别?
可能重复: 如何在heroku中清空数据库 我在Heroku上有一个Postgres数据库。 这是免费的testing版之一。 在本地testing时,我经常运行rake db:drop && rake db:create && rake db:migrate作为重置数据库的一种方法。 但是,当我尝试在Heroku上运行这个时,我得到错误: Couldn't drop mydatabaseid : #<PG::Error: FATAL: permission denied for database "postgres" DETAIL: User does not have CONNECT privilege. 呃,那么,我该如何彻底重置我的数据库,迁移和其他一切?
这是设置: 新的Rails应用程序,然后把这个test_rake.rake在lib / tasks: task :testclass do HelloClass.hello end` 把hello_class.rb放在app / models或者lib /中,用这行: config.autoload_paths += %W(#{config.root}/lib)添加到config.rb class HelloClass def self.hello puts 'hello_class' end end 耙testing类给出这个错误: /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing' /Users/name/Sites/Rails/indexapp/lib/tasks/test_class.rake:5:in `block (2 levels) in <top (required)>' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `call' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `each' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `execute' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:597:in `block in invoke_with_call_chain' /Users/name/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' /Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2051:in […]
当使用Rake运行单元和functiontesting时,在rails应用程序中,我注意到在命令行中指定了种子值:– seed x $ rake test (in /code/blah) Loaded suite /../ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake/rake_test_loader Started . Finished in 0.12345 seconds. 1 tests, 1 assertions, 0 failures, 0 errors, 0 skips Test run options: –seed 20290 我认为可以在testing中使用这个值,但我不知道如何。 我试过Google,Rails Guides等。 但似乎无法find答案。 编辑: 这个种子值可能是Minitest用来随机化testing执行顺序的选项吗?