我想在用户点击按钮时执行这些功能,但我想在后台异步执行$model->user->email ? $model->sendUserMail(): "";
,而其他功能会在点击时执行
这是我的代码
if (isset($_POST['create_send'])) {
if ($model->save()) {
$model->order_id = strtotime(date("Y-m-d H:i:s")) + '' + $model->id;
// send mail
$model->sendMail();
//send sms
$messages = $model->sendSMSMessage($model);
// create booking history
$model->createBookingHistory($model , $messages);
$model->user->email ? $model->sendUserMail(): "";
if($model->booking_stage != 'inprogress'){
$this->sendPushToSeller($model);
}
$model->update();
$this->redirect(array('index', 'id' => $model->id));
}
}
答案 0 :(得分:1)
标准PHP中没有像Async Tasks那样的东西。您可以安装pthreads,或者您必须使用某种Queue。 使用Queue,它可以像这样工作:
或者像@Alan Machado所说,使用AJAX。因此,您的页面可以加载,并且按钮会向发送邮件的服务器发送AJAX请求。
答案 1 :(得分:0)
你标记了yii,所以也许考虑一个RESTful API扩展,并研究AJAX和CRUD。这取决于你想要走多远。但我觉得使用yii的RESTful API是AJAX的最佳选择。