zoukankan      html  css  js  c++  java
  • laravel 队列使用(发邮件、短信等)

    1、配置

    队列配置文件存放在config/queue.php。在该文件中你将会找到框架自带的每一个队列驱动的连接配置,包括数据库、Beanstalkd、 IronMQ、 Amazon SQS、 Redis以及同步(本地使用)驱动。其中还包含了一个null队列驱动以拒绝队列任务。

    咱们以database为例:env文件配置  QUEUE_DRIVER=database

    2、创建数据库(jobs、failed_jobs),如果想自定义表名,生成后改一下表名,然后修改配置文件queue.php 中的jobs及failed_jobs为自己的表名

    1 php artisan queue:table
    2 php artisan queue:failed-table
    3 php artisan migrate

    3、创建任务类

    php artisan make:job SendReminderEmail

    该命令将会在app/Jobs目录下生成一个新的类,并且该类实现了IlluminateContractsQueueShouldQueue接口,告诉Laravel该任务应该被推送到队列而不是同步运行。

    例子中用的邮件发送,测试之前请先配置邮件发送

    namespace AppJobs;
    
    use AppJobsJob;
    use IlluminateQueueSerializesModels;
    use IlluminateQueueInteractsWithQueue;
    use IlluminateContractsQueueShouldQueue;
    
    use IlluminateSupportFacadesMail;
    
    class SendReminderEmail extends Job implements ShouldQueue
    {
        use InteractsWithQueue, SerializesModels;
    
        /**
         * Create a new job instance.
         *
         * @return void
         */
        public function __construct()
        {
            //
        }
    
        /**
         * Execute the job.
         *
         * @return void
         */
        public function handle()
        {
            //
            $message = "testtesedtsetstwesewrwerewrw";
            $to = 'xxxx@qq.com';
            $subject = '邮件名称';
            Mail::send(
                'email.test',
                ['data' => $message],
                function ($m) use($to, $subject) {
                    $m->to($to)->subject($subject);
                }
            );
        }
    }

    3、控制器推送到任务(延迟执行、任务分类等,可自行查找手册)

    1 $job = (new SendReminderEmail())->delay(5);
    2         $this->dispatch($job);

    4、测试期可以使用php artisan queue:listen进行队列的监听

  • 相关阅读:
    ZABBIX自动发现添加主机功能
    Kafka史上最详细原理总结
    python的基本函数
    windows和linux出现timewait过多的解决方法
    Ext.Net使用DirectMethod.request调用一般处理程序(.ashx)并传递参数
    $.post、$.get、$.ajax三者的区别
    .net Web应用程序添加WebService引用时报错的问题
    ASP.NET TreeView控件各个节点总是居中对齐,而不是左对齐的问题
    利用Win8上的IIS来部署ASP网站
    做文件目录DEMO时发现的问题
  • 原文地址:https://www.cnblogs.com/winstonsias/p/10196514.html
Copyright © 2011-2022 走看看