从一系列 Rake 任务中退出并继续下一个
Exit from one of a series of Rake tasks and continue with the next
我有这个主要的 Rake 任务
namespace :crawler do
task main: :environment do
Rake::Task['tester:first'].execute
Rake::Task['tester:second'].execute
Rake::Task['tester:third'].execute
end
end
每个任务都运行一段代码来检查是否存在一个值,如果不存在则退出任务并继续下一个任务。
实际上代码如下,但它不起作用
def check(value)
if !value.nil?
return value
else
exit
end
end
当我到达Exit部分时,整个程序退出,其他任务没有执行。
如果您的检查方法 return 为零,请尝试在您的 Rake 任务中使用 "next" 跳转到下一个任务。
您可以在 "check" 函数中使用条件条件 return 值(如果存在)或 return nil(如果值为 nil)。然后,如果检查returns nil,则可以使用next(不是exit)跳转到下一个任务。
task :main do
Rake::Task['first'].execute(value: 'Hello, Rake world!')
Rake::Task['second'].execute
end
task :first do |_t, args|
value = args[:value]
next if check(value).nil?
puts 'the value is: ' + value
end
task :second do
puts 'the second task'
end
def check(value)
if value.nil?
return nil
else
return value
end
end
在函数定义中使用 "next" 将不起作用。您只能从当前 rake 任务中跳到下一个 rake 任务
我有这个主要的 Rake 任务
namespace :crawler do
task main: :environment do
Rake::Task['tester:first'].execute
Rake::Task['tester:second'].execute
Rake::Task['tester:third'].execute
end
end
每个任务都运行一段代码来检查是否存在一个值,如果不存在则退出任务并继续下一个任务。 实际上代码如下,但它不起作用
def check(value)
if !value.nil?
return value
else
exit
end
end
当我到达Exit部分时,整个程序退出,其他任务没有执行。
如果您的检查方法 return 为零,请尝试在您的 Rake 任务中使用 "next" 跳转到下一个任务。
您可以在 "check" 函数中使用条件条件 return 值(如果存在)或 return nil(如果值为 nil)。然后,如果检查returns nil,则可以使用next(不是exit)跳转到下一个任务。
task :main do
Rake::Task['first'].execute(value: 'Hello, Rake world!')
Rake::Task['second'].execute
end
task :first do |_t, args|
value = args[:value]
next if check(value).nil?
puts 'the value is: ' + value
end
task :second do
puts 'the second task'
end
def check(value)
if value.nil?
return nil
else
return value
end
end
在函数定义中使用 "next" 将不起作用。您只能从当前 rake 任务中跳到下一个 rake 任务