Dee*_*ari 2 php laravel laravel-5.5
我创建了一系列消息,通过twilio以短信形式发送.
我创建了一个控制器,将消息放入队列中,并在post请求中接收数据.这是我的控制器来排队:
public function make_queue(Request $request)
{
$data = array(
'phone' => $request->input('phone'),
'message'=> $request->input('message'),
'token'=> $request->input('token')',
'sid'=> $request->input('sid')
);
ProcessMessages::dispatch($data)
->delay(now()->addSeconds(15));
return 'message will be sent';
}
Run Code Online (Sandbox Code Playgroud)
并且在处理工作中,在句柄功能中
public function handle()
{
$token = should_come_from job;
$sid = should_come_from job;
$ids = should_come_from job;
$msg = should_come_from job;
try{
//send message
}
catch (exception $e)
{
handle exception
}
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何获取handle函数中的值来实际发送消息....
您需要在作业处理程序类(ProcessMessages)中添加构造函数方法,例如:
// namespace and use statements...
class ProcessMessages implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $data;
public function __construct(array $data)
{
$this->data = $data;
}
public function handle()
{
$token = $this->data['token'];
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
编写完作业类后,可以使用作业本身的调度方法进行调度.传递给dispatch方法的参数将被赋予作业的构造函数.阅读有关调度作业的信息.