场景:
在一个a系统中注册一个用户时,发送请求到b系统中也注册一个相同信息的账号,考虑到网络有可能错误的原因,所以使用队列去处理
1.修改根目录 .env 文件的QUEUE_CONNECTION字段配置 为database
Laravel可配置多种队列驱动,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具体参见app/config/queue.php)
其中sync为同步,database为使用数据库,后面三种为第三方队列服务,最后一种为不使用队列。
通过在 .env 中的 QUEUE_CONNECTION 选项,来决定选择何种驱动。
如 QUEUE_CONNECTION=database 即为选择数据库驱动队列。
其中sync为同步,database为使用数据库,后面三种为第三方队列服务,最后一种为不使用队列。
通过在 .env 中的 QUEUE_CONNECTION 选项,来决定选择何种驱动。
如 QUEUE_CONNECTION=database 即为选择数据库驱动队列。
2.创建数据库队列表(database方式)
为了使用 database
队列驱动,你需要一张数据表来存储任务。
php artisan queue:table
php artisan migrate
生产一张队列表
3.生成任务类
在你的应用程序中,队列的任务类都默认放在 app/Jobs
目录下。
如果这个目录不存在,那当你运行 make:job
Artisan 命令时目录就会被自动创建。
你可以用以下的 Artisan 命令来生成一个新的队列任务:
php artisan make:job SynUser
4.在队列类里面的handle方法中写上业务逻辑