我只想在CPU负载较少的时候运行Stalker作业,这样站点就不会受到影响。
该工作是转换视频从任何格式的flv和mp4。所以这是一项非常昂贵的工作。
我如何才能做到这一点?
编辑
这是一种好方法吗?
smthng怎么样
load = `uptime`.gsub(/(.*): /,'').strip.split ' '
if (load[0].to_f < 0.7 && load[0].to_f < load[1].to_f) || (!args["max_delay"].nil? && total_delay > args["max_delay"] && load[0].to_f < 0.85)
do stuff
end发布于 2011-01-11 01:21:02
运行一个单独的Ruby解释器进程,该进程只执行代码转换,并使用nice -n 19或nice -n 12运行它。
在启动解释器之后,您可能想要降低Ruby代码中的优先级(提高nice级别)。
现在,您可以使用Process.setpriority更改解释器的优先级。但是,除非您拥有特权,或者使用Linux并具有CAP_SYS_NICE功能,否则您将无法恢复到正常的优先级。
解决这个问题的策略可能包括接收一些要做的工作,执行Process或Kernel.fork,降低优先级,运行作业,然后调用exit。
https://stackoverflow.com/questions/4649425
复制相似问题