laravel mysql驱动_Laravel 如何同时使用不同数据库驱动

queue配置

首先说明一下我之前的项目中如何使用queue的。

我们现在的项目都是用的symfony,老一点的项目用的symfony1poser/vendor/bin 加入到环境变量中。

source ~/.bash_profile 就可以直接在命令行中使用laravel了。试一下。

laravel -V 能够看到下面的,就代表成功了。

Laravel Installer version 1.2.1 2、创建项目。

laravel new guagua 3、配置redis和queue。

4、创建controller,

php artisan make:controller DefaultController 在controller的action中push100个queue的任务。

for($i = 0; $i < 100; $i ++) { Queue::push(new SendEmail("ssss".$i)); } 5、创建queue的Command

php artisan make:command SendEmail --queued 修改app/Commands/SendEmail.php,添加一个私有变量。

protected $msg; 同时修改构造函数。

public function __construct($msg) { $this->msg = $msg; } 再修改的handle方法

public function handle() { sleep(4); echo $this->msg."\t".date("Y-m-d H:i:s")."\n"; $this->delete(); } 6、修改routes

Route::get('/', [ 'as' => 'index', 'uses' => 'DefaultController@index' ]); 7、监听queue

php artisan queue:listen 为了验证多任务处理,我们同时开三个窗口运行同样的命令。

8、用laravel内建的server启动服务

php artisan serve --port 8080 打开浏览器,访问localhost:8080/页面。当然也可以用nginx,apache之类的。但是需要各种配置,还是内建的使用方便。

在控制台就能看到各个queue执行的情况了,如下图。可以看到100个任务被三个work平分了。

到此,基本达到了我想要的效果。验证了laravel可以简单实现queue,并且可以多任务处理。

make command生成的代码中use App\Commands\Command ,但是运行时提示没有这个文件。 解决办法,修改为 use Illuminate\Console\Command; 不知道为什么会出现这个低级问题,难道是我mac系统问题,还是我的人品问题。

在controller的action中push队列的时候,没有异步执行,还是在action的脚本中执行的。 发现是配置问题,原来不仅仅要修改config中的queue.php,还要修改.evn中相关配置。 虽然问题解决了,但是还是觉得蛋疼,不能理解。还需要在学习学习laravel。

异步队列使用方法

1.配置

关于队列的定义,这里就不作介绍了。我们要使用异步队列就有两个关键:

(1)存储队列的地方

(2)执行任务的服务

打开 config/queue.php ,这是Laravel5关于队列的配置文件。首先我们可以通过 default 参数指定默认队列驱动,默认配置是 sync , 这是同步队列,我们要做异步队列首先就要改变这里。假设我们用 database 作为驱动,队列任务将会存放在数据库中,而我们后面会另外启动一个后台服务来处理队列任务,这就是异步方式了。

'default' => 'database' 修改完配置后,我们需要创建一个表来存放队列任务,Laravel5已经在自带artisan命令中内置了一个指令用来生成数据迁移,只需要两条命令即可,当然你得实现配置好数据库连接。

php artisan queue:table php artisan migrate 这样就自动在数据库中创建了 jobs 表。

2.启动队列监听服务

通过下面这条指令启动队列监听服务,它会自动处理 jobs 表中的队列任务:

php artisan queue:listen 在linux中,如果想让它在后台执行,可以这样:

nohup php artisan queue:listen & 3.添加队列任务

关于队列任务的添加,手册里说的比较详细,这里就简单举个例子吧。

首先,通过artisan创建一个队列命令:

php artisan make:command SendEmail --queued 这样会生成 app/Commands/SendEmail.php 这个类文件,这个类会被标识为队列命令,你可以在 handle 方法中写自己的业务逻辑。

在控制器中,可以简单通过 Bus::dispatch 分发任务:

Bus::dispatch(new \App\Commands\SendEmail()); 你会发现任务不会立即执行,而是被放到 jobs 表中,由队列监听服务处理。

更详细的用法建议参考 command bus 和 queue 相关的手册章节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

open-falcon的插件机制

Plugin可以看做是对agent功能的扩充。对于业务系统的监控指标采集&#xff0c;最好不要做成plugin&#xff0c;而是把采集脚本放到业务程序发布包中&#xff0c;随着业务代码上线而上线&#xff0c;随着业务代码升级而升级&#xff0c;这样会比较容易管理。 1. 编写采集脚本 用…

python 获取文件大小,创建时间和访问时间

# -*- coding: UTF8 -*- import timeimport datetime import os 1、  把时间戳转化为时间: 1479264792 to 2016-11-16 10:53:12    def TimeStampToTime(timestamp):       timeStruct time.localtime(timestamp)       return time.strftime(%Y-%m-%d %H:%…

mysql 免安装版迁移_mysql免安装版 安装配置 (转)

1. 下载MySQL Community Server 5.6.132. 解压MySQL压缩包将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是:"D:\Program Files\MySQL\mysql-5.6.13-win32"将解压目录下默认文件 my-default.ini 拷贝一份&#xff0c;改名 my.ini复制下面的配置信息到 my.ini…

从简单的信道预计说起

前面写了关于CP在OFDM中的应用&#xff0c;主要是记录一点零星的想法而已&#xff0c;今天突然想写点关于信道特性方面的东西。原因有下面几点&#xff1a; 1&#xff09;信道在仿真中的地位不容置疑&#xff0c;不同信道的条件下的仿真是很多课题的重点&#xff0c;自己差点儿…

python input函数赋值法_赋值法 - 静雅斋数学 - 博客园

前言赋值法是高中数学中比较常用的一种方法&#xff0c;使用“赋值法”的数学素材和知识点&#xff0c;散落在高中数学的几乎各个章节中&#xff0c;现对其进行整理&#xff0c;以便于学习。比如学习函数时可以赋值法给出单调性&#xff0c;奇偶性&#xff0c;周期性等&#xf…

ActiveMQ 的连接和会话

要了解 connection 和 session 的概念&#xff0c;可以先从 ConnectionState 和 SessionState 入手&#xff1a; // 省略部分代码 public class ConnectionState {ConnectionInfo info;private final ConcurrentHashMap<TransactionId, TransactionState> transactions …

IOS开发之页面切换

从一个ViewController切换到另一个ViewController有下面几种方法&#xff1a; &#xff08;1&#xff09;addsubview方法切换视图self.view addSubview:(加载的新页面);相应的 [self.view removeFromSuperview];移除添加的view&#xff08;2&#xff09;self.view insertSubvie…

python模拟购物车购物过程_Python基于数列实现购物车程序过程详解

要求1、启动程序后让用户输入余额&#xff0c;并打印商品列表2、用户通过输入编号购买商品3、用户选择商品购买后&#xff0c;根据余额判断成功或者失败&#xff0c;给出对应提示4、可以随时退出&#xff0c;退出后打印账号余额以及购买的商品列表构思1、首先&#xff0c;用户余…

Time

问题 : Time时间限制: 1 Sec 内存限制: 128 MB题目描述Digital clock use 4 digits to express time, each digit is described by 3*3 characters (including”|”,”_”and” “).now given the current time, please tell us how can it be expressed by the digital clock…

正则表达式怎样匹配 不包含特定字符串的字符串

正则表达式匹配公式为&#xff1a;^((?!XXX).)*$&#xff0c; XXX为字符串。转载于:https://www.cnblogs.com/lixiaolun/p/5627254.html

ffmpeg 同宽度 画中画_FFmpeg中overlay滤镜用法-水印及画中画

1. overlay 技术简介overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛&#xff0c;常见的例子有&#xff0c;电视屏幕右上角显示的电视台台标&#xff0c;以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口&#xff0c;两个窗口不同的视频内…

shutil

高级的 文件、文件夹、压缩包 处理模块 1、shutil.copyfileobj(fsrc, fdst[, length])  将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open(old.xml,r), open(new.xml, w)) 2、shutil.copyfile(src, dst)  拷贝文件 shutil.copyfile(f1.log, f2.log) #目…

Android surfaceview详解

周末看《精通Android游戏开发》(Pro Android Games)&#xff0c;里面讲到游戏的框架&#xff0c;其中一个重要的概念surfaceview,觉得不是很理解&#xff0c;于是花了一点时间研究了下&#xff0c;写下自己的心得。surface&#xff0c;这个单词的意思是浮在表面的&#xff0c;那…

查看操作系统的UUID

UUID 是系统的唯一识别码&#xff0c;永远不会重复&#xff0c;比较有用。Windows 篇在命令提示符下输入wmic 再输入csproduct 或 csproduct list fullwmic:rootcli>csproduct list fullLinux 篇&#xff0c;&#xff08;以 CentOS为例&#xff09;yum install epel-release…

ThinkPhp学习06

一、简单学习修改用户信息模块 1、编写UserAction.class.php 1 <?php2 3 class UserAction extends Action{4 public function index(){5 $mM(User);6 $arr$m->select();7 $this->assign(data,$arr);8 …

Spring MVC @SessionAttributes注解

SessionAttributes原理 默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后&#xff0c;数据就失效了。如果要跨页面使用。那么需要使用到session。而SessionAttributes注解就可以使得模型中的数据存储一份到session域中。 SessionAttributes参数 1、name…

C# 关于MVC框架的简单实例(计算器)

一、需求分析 实现效果 二、实现步骤 步骤一&#xff1a;新建项目--->Web---->空模板 步骤二&#xff1a;添加控制器 步骤三&#xff1a;根据控制器名称添加视图 步骤四&#xff1a;添加Models模型 编写具体的方法 using System;using System.Collections.Generic;using…

JS函数

函数&#xff1a; 函数是由事件驱动或者当它被调用时执行的可重复色代码块。 <head> <script> function hanshu() { alert("你好&#xff01;"); } </script> </head><body> <button οnclick"hanshu()">点击</but…

the python interpreter is in_the python interpreter is in - 百度学术

152.6Khttp://www.web.mit.edu/18.417/OldFiles/doc/pydocs/ext.pdfweb.mit.edu全网免费224.9Khttp://www.logos.t.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.pdflogos.t.u-tokyo.ac.jp全网免费224.9Khttp://www.logos.ic.i.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.p…

windows下安装subversion

前言&#xff1a; 最近在写windows版本下svn hooks(钩子) post-commit的实现。所以会需要在windows下安装相应的subversion。经过一番查询后&#xff0c;决定使用VisualSVN Server和TortoiseSVN 来实现windows下subversion的安装。相应的安装包已放到相关的百度云盘&#xff0…