我想使用php线程异步加载执行mysql存储过程的函数。我发现,存储过程需要花费大量时间来加载,因此保持异步是唯一的最佳解决方案。我不知道如何将拉线带入laravel。 Laravel排队但是,我想直接在脚本中用线程来做。有人请帮帮我。
答案 0 :(得分:1)
我为解决类似问题所做的工作(我在同步命令中完成)是创建一个从Thread扩展并从laravel代码调用它的类。
您的案例中的类可能是这样的:
class LaravelWorker extends Thread
{
private $object;
public function __construct($object)
{
$this->object = $object;
}
public function run()
{
$object->runProcedure();
}
}
你可以在你的代码中调用它:
$object = new ObjectWithProcedure();
$threadedMethod = new LaravelWorker($object);
$threadedMethod->start();
如果由于某种原因,你需要等到$ threadedMethod完成,你可以做
$threadedMethod->join();
(more_code...)
而more_code部分只会在$ threadedMethod结束后执行。
希望它有所帮助!