我曾经使用exec()
函数来触发新的php线程(不需要这些php脚本的输出),类似
for ($i=0;$i<5;$i++) {
exec('/usr/bin/php script' . $i . '.php > /dev/null 2>&1 &');
sleep(1);
}
我想问一下,是否有其他原生PHP函数可以做同样的工作,因为我的网络托管提供商没有启用exec
,我不愿意切换到另一个。
非常感谢。
通常,此类任务是通过http服务器内的内部请求生成的。对于更复杂的任务,只需使用phps [virtual()][1]
或[curl extension][2]
即可。
然而,您仅限于phps的web配置,所以要注意执行超时等限制。我怀疑是否有一种方法可以在网络主机系统上生成一个真正的过程。那将是一个可怕的安全线程!
通常,这样的任务也被委托给由cron
、poor mans cron
或基于ajax
的触发器触发的某种作业调度器实现。这意味着您必须为等待处理的作业实现一个调度程序。但它也带来了良好的分离工作。