【发布时间】:2016-06-03 23:54:02
【问题描述】:
我需要一个函数,它会在可调用函数花费很长时间完成其任务后抛出可捕获的异常。
注意:我不是指 PHP 脚本的最大执行时间。
该函数应该像call_user_func 一样工作,只是它需要以秒为单位的时间限制。
function task() {
// does a lot of work...
}
try {
call_user_func('task', 30); // limit to 30 seconds
} catch (TimeoutException $ex) {
// ....
}
我无法将自定义逻辑添加到 task 函数以自行引发异常。这个想法是强制可调用的方法在 X 秒后中止或失败。
我有 CLI 脚本,我想调节它们完成任务所需的时间。
【问题讨论】:
-
This question 可能会给你一些提示。不过,实现自己的调度程序绝非易事,通常需要考虑很多边缘情况。