Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在laravel中的自定义类上使用队列?_Laravel_Laravel Queue - Fatal编程技术网

如何在laravel中的自定义类上使用队列?

如何在laravel中的自定义类上使用队列?,laravel,laravel-queue,Laravel,Laravel Queue,在Laravel5.5中,我正在做一个短信服务 SMS::to("xxxx")->send(new WelcomeSms()); 或 在这里,我想使用队列。当我调用sendTo时,它必须与队列一起工作。我该怎么做呢?关于队列的所有内容在Laravel中,您可以在。您需要从控制器生成队列作业并分派SmsMessage: SmsMessage类: 类SmsMessage{ 私人$号码; 私人信息; 公共函数getNumber():?字符串{ 返回$this->number; } 公共

在Laravel5.5中,我正在做一个短信服务

SMS::to("xxxx")->send(new WelcomeSms());


在这里,我想使用队列。当我调用
sendTo
时,它必须与队列一起工作。我该怎么做呢?

关于
队列的所有内容
Laravel
中,您可以在。您需要从控制器生成
队列作业
并分派
SmsMessage

SmsMessage类:

类SmsMessage{
私人$号码;
私人信息;
公共函数getNumber():?字符串{
返回$this->number;
}    
公共函数setNumber(字符串$number){
$this->number=$number
}    
公共函数getMessage():?字符串{
返回$this->message;
}    
公共函数setMessage(字符串$message){
$this->message=$message
} 
}
控制器:

然后从控制器方法分派一些数据并将其放入队列:

类SmsController扩展控制器
{
/**
*发送新短信
*
*@param Request$Request
*@返回响应
*/
公共函数发送(请求$Request)
{
//这里有一些代码
$smsMessage=新smsMessage();
$smsMessage->setNumber('xxx');
$smsMessage->setMessage('Lorem ipsum…');
发送短信::发送($smsMessage);
}
}
SmsQueueJob类:

php工匠制作:作业smsquejob
它将生成一个简单的骨架类:

类SmsQueueJob实现ShouldQueue
{
使用可调度、可交互、可排队、可序列化的模型;
受保护的$smsMessage;
/**
*创建一个新的作业实例。
*
*@param SmsMessage$SmsMessage
*@返回无效
*/
公共功能构造(SmsMessage$SmsMessage)
{
$this->smsMessage=$smsMessage;
}
/**
*执行作业。
*
*@返回无效
*/
公共函数句柄()
{
//在这里发送短信
短信::发送($SMS->getNumber())->发送(新的WelcomeSms());
}
}
您可以为此队列生成新队列、新连接

要运行队列工作程序,请运行下面的命令:

php artisan队列:工作

在生产环境中,您应该将此命令作为
Cron作业运行
,或者使用

搜索教程。例如:如果您有任何问题,如“我正在这样做,但它不起作用”,您可以在这里询问。我查看了所有内容,但它谈论的是在mailer上使用队列,而不是像我所说的在自定义类中使用队列,我有一个问题“如何在类似SMSABLE中使用它?”。您只能在自定义类中调度作业并在队列中发送SMS。
WelcomeSms::message("xxx")->sendTo("xxx");