laravel 实现队列功能
- 修改 .evn 文件中的 QUEUE_CONNECTION=default 设置为 database
- 修改config目录下面的queue.php文
<?phpreturn [/*|--------------------------------------------------------------------------| Default Queue Connection Name|--------------------------------------------------------------------------|| Laravel's queue API supports an assortment of back-ends via a single| API, giving you convenient access to each back-end using the same| syntax for every one. Here you may define a default connection.|*/'default' => env('QUEUE_CONNECTION', 'sync'),/*|--------------------------------------------------------------------------| Queue Connections|--------------------------------------------------------------------------|| Here you may configure the connection information for each server that| is used by your application. A default configuration has been added| for each back-end shipped with Laravel. You are free to add more.|| Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"|*/'connections' => ['sync' => ['driver' => 'sync',],'database' => ['driver' => 'database','table' => 'jobs', //根据你使用的表进行更改'queue' => 'default','retry_after' => 90,],'sqs' => ['driver' => 'sqs','key' => env('AWS_ACCESS_KEY_ID'),'secret' => env('AWS_SECRET_ACCESS_KEY'),'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),'queue' => env('SQS_QUEUE', 'your-queue-name'),'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),],'redis' => ['driver' => 'redis','connection' => 'default','queue' => env('REDIS_QUEUE', 'default'),'retry_after' => 90,'block_for' => null,],],/*|--------------------------------------------------------------------------| Failed Queue Jobs|--------------------------------------------------------------------------|| These options configure the behavior of failed queue job logging so you| can control which database and table are used to store the jobs that| have failed. You may change them to any database / table you wish.|*/'failed' => ['database' => env('DB_CONNECTION', 'mysql'),'table' => 'failed_jobs',],];
- 使用artisan命令生成任务文件 php artisan make:job SendEmail
<?phpnamespace App\Jobs;use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use PHPMailer\PHPMailer\PHPMailer;class SendEmail implements ShouldQueue {use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;/*** Create a new job instance.** @return void*/public function __construct(){//这里可以传递参数}/*** Execute the job.** @return void*/public function handle(){$mail = new PHPMailer(true);try {$mail->CharSet = "UTF-8";$mail->isSMTP(); // Send using SMTP$mail->Host = 'smtp.qiye.163.com'; // Set the SMTP server to send through$mail->SMTPAuth = true; // Enable SMTP authentication$mail->Username = '******'; // SMTP username$mail->Password = '*****'; // SMTP password$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted$mail->Port = 587; // TCP port to connect to//Recipients$mail->setFrom('******', '*****');//发送名称$mail->addAddress('*****'); // 发送给给定的邮箱$mail->addCC('*****');//抄送给相对应的邮箱// 这个方法是发送附件内容的$mail->addAttachment('C:/Users/Administrator/Desktop/图片资源/OK.jpg'); // 添加附件文件 // $mail->addAttachment('C:/Users/Administrator/Desktop/图片资源/OK.jpg', 'new.jpg'); // 重命名附件文件名$mail->isHTML(true); // Set email format to HTML$mail->Subject = '这是一份测试邮件';//邮件标题$mail->Body = 'This is the HTML message body <b>in bold!</b>';//邮件主体内容 // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';$mail->send();echo "邮件发送成功";Log::info('邮件发送成功');} catch (Exception $e) {echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";Log::info('邮件发送失败');}} }
生成队列任务计划表
php artisan queue:tablephp artisan queue:failed-tablephp artisan migrate
5.在需要调用队列的方法下面加入该类即可
$data = ['company'=>'****'];$job=new SendEmail($data);dispatch($job);return ['code'=>1,'msg'=>'发送成功'];
6.在windows中 在项目根目录打开控制台分别 执行
php artisan queue:listen
php artisan queue:work --queue=default,mytask --tries=2
laravel 实现队列功能相关推荐
- redis 队列功能
2019独角兽企业重金招聘Python工程师标准>>> Redis队列功能介绍 List 常用命令: Blpop删除,并获得该列表中的第一元素,或阻塞,直到有一个可用 Brpop删除 ...
- Php laravel 队列,Laravel 的队列系统介绍
这篇文章主要介绍的内容是关于Laravel 的队列系统介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Laravel 队列为不同的后台队列服务提供统一的 API , 例如 Bean ...
- laravel异步队列的使用
功能实现描述:在做大富翁网页小游戏时候,用户跳转指定步数需要获取相关奖品,例如优惠券,实物奖,此时需要给用户发送系统消息,如果他注册了网站.此时就用到了异步 1.首先在laravel用异步很方便. P ...
- C#实现rabbitmq 延迟队列功能
最近在研究rabbitmq,项目中有这样一个场景:在用户要支付订单的时候,如果超过30分钟未支付,会把订单关掉.当然我们可以做一个定时任务,每个一段时间来扫描未支付的订单,如果该订单超过支付时间就关闭 ...
- 十分钟看会laravel导入导出功能,就这么简单
laravel5扩展包excel导入导出功能 一, 简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的 ...
- Laravel框架登录功能实例
功能:用于实现登录功能 框架:laravel 5.8 一.添加路由器 Route::group( [ 'middleware'=>[] , 'prefix'=>'admin' , 'nam ...
- 无涯教程: Laravel 8 - 队列介绍
有时,你发送电子邮件或站内消息比较费时,这时可以使用队列处理这些任务. 步骤1:下载Laravel 8 首先,我们需要使用下面命令获取最新的Laravel 8版本应用程序. composer crea ...
- laravel 使用队列进行微信模板消息的群发
前置准备工作 框架:laravel 5.5 公众号:我的是服务号(需要营业执照申请,300一年) PHP版本:7.1 需要自己配置好php环境,安装好redis 直接进入代码主题 php artisa ...
- laravel实现文件下载功能
laravel自带文件下载功能,你可以参考官方文档laravel文件下载功能 download 方法可以用于生成强制让用户的浏览器下载指定路径文件的响应.download 方法接受文件名称作为方法的第 ...
- Laravel redis队列不执行
配置redis队列,以为直接配置env改这个QUEUE_CONNECTION=redis,但是发现实际没有执行队列,如果是datebase或者sync的是没问题,但是redis就有可能出现问题 按照文 ...
最新文章
- Java 内存泄漏排查,新技能+1
- 服务端php的更新手游客户端,PHP服务器安卓app下载|PHP服务器下载1.11.3 官方移动客户端-PHP服务器官方移动客户端1.11.3-蜻蜓手游网...
- SecureCRT 6.7.1 注冊机 和谐 破解 补丁 方法
- python开发视频播放器_Python应用03 使用PyQT制作视频播放器实例
- CakePHP 2.x十分钟博客教程
- 如何将你的 MySQL 查询速度提升 300 倍
- java动作触发声音_关于鼠标动作的声音如何添加
- eigrp 非等值负载均衡
- 高级商务办公软件应用【5】
- 1 集群Linux环境搭建
- 程序员叫啥名字_程序员是什么职业什么职务?
- 该网站安全证书有问题 宝塔面板配置ssl中遇到的“坑”
- Elasticsearch常用查询命令
- 搭建owncloud私有云
- Restful API设计指南
- MySql无法连接本地地址localhost
- planet_Earth靶场渗透记录
- 秒杀抢单系统软件架构优化思路
- CVPR 2018视频行为识别挑战赛概览
- php租用空间,php虚拟主机空间租用(php虚拟主机免费)