我想在以下代码中选择不会出现异常的task
,
我怎么能得到它?
如果任务状态包含pid且进程正在我的系统上运行, 那么它就不会有例外。
这个代码在我的帮助函数中,我应该将一些函数移动到Model吗? (我正在使用ROR)
def sanitize_running_tasks(tasks)
sanitized_tasks = tasks.select do |task|
begin
Process.kill 0, task.status.to_i
rescue Exception => e
task.status = :FAIL
task.save
end
end
end
答案 0 :(得分:0)
请考虑将kill
方法放在任务上。
def sanitize_running_tasks(tasks)
tasks.select &:kill
end
class Task
def kill
Process.kill 0, status.to_i
true
rescue Exception => e
mark_failed!
false
end
def mark_failed!
update_attributes status: :FAIL
end
end