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