0
我想用php線程異步加載執行mysql存儲過程的函數。存儲過程需要花費很多時間才能加載,因此保持異步是唯一最佳解決方案。我不知道如何將線程拖入laravel。 Laravel hs隊列,但是,我想直接用線程腳本來完成。請有人幫我解決這個問題。如何在laravel中使用線程來運行存儲過程
我想用php線程異步加載執行mysql存儲過程的函數。存儲過程需要花費很多時間才能加載,因此保持異步是唯一最佳解決方案。我不知道如何將線程拖入laravel。 Laravel hs隊列,但是,我想直接用線程腳本來完成。請有人幫我解決這個問題。如何在laravel中使用線程來運行存儲過程
我所做的解決類似問題的方法(我在同步命令中已經完成)是創建一個從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部分只會執行一次$ thr eadedMethod已結束。
希望它有幫助!
[pthreads](https://github.com/krakjoe/pthreads)庫提供了在PHP中使用線程所需的幫助器。 – peaceman
@peaceman感謝您的信息 – winnyboy5