2017-02-08 59 views
1

我的系統需要發送電子郵件給許多用戶,它真的需要時間來發送許多用戶。我不希望用戶等待那段時間。如何調用函數在後臺笨

_send_mail函數在各種控制器文件中的用途不同。有什麼方法可以在後臺發送電子郵件嗎?

+0

使用cron發送電子郵件。 – shafiq

+0

您可以使用crons在後臺發送電子郵件。 –

+0

研究'Gearman' –

回答

1

在這種情況下,您可以在發送郵件之前返回部分響應。所以你會得到一個進一步處理的迴應,你的電子郵件發送過程將在後臺繼續。

爲此創建將在此之後DO發送電子郵件

$this->partialResponse(); 

任何你想做的事之前拋出這樣

function partialResponse() 
    { 
     $response=array(); 
     ignore_user_abort(true); 
     ob_start(); 
     echo json_encode($response); 
     header("Status: 200"); 
     header($_SERVER["SERVER_PROTOCOL"] . " 200 Ok"); 
     header("Content-Type: application/json"); 
     header('Content-Length: '.ob_get_length()); 
     ob_end_flush(); 
     ob_flush(); 
     flush(); 
    } 

分區響應,並調用這個函數的函數,即發送電子郵件

+0

偉大的工程; –