我想运行Stalker作业,只有当CPU负载较小时才会影响该站点。
工作是将视频从任何格式转换为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
答案 0 :(得分:5)
运行一个单独的Ruby解释器进程,该进程仅执行转码并使用nice -n 19
或nice -n 12
运行它。
您可能希望在启动解释器后降低Ruby代码中的优先级(提高 nice 级别)。
现在,您可以使用Process.setpriority
来更改解释器的优先级。但除非您有特权或在Linux上且具有CAP_SYS_NICE功能,否则您将无法恢复到正常优先级。
问题的策略可能涉及接收一些工作要做,执行Process
或Kernel.fork
,降低优先级,运行作业,然后调用{{1 }}