解决方法
您可以尝试使用标准核心中的
Process.setrlimit
:
Sets the resource limit of the process.
这看起来它只是来自C库的setrlimit
的包装器,所以它可能只在Unix-ish平台上可用. setrlimit不支持cpu百分比限制,但它确实支持以秒为单位限制cpu时间.
如果你只是试图阻止你的Ruby进程占用整个cpu,那么你可以尝试用Process.setpriority
来调整它的优先级,这只是libc setpriority
的一个包装器,它可以控制你进程的调度优先级.同样,可用性可能会受到您的平台的限制,但它应该适用于Linux,OSX或任何其他Unix-ish系统.