最近工作中需要用到Excel导出,用的是php的laravel框架,导出Excel就用到maatwebsite这个包。包的具体安装方法
这里就不具体介绍了哈,可以自行百度之。
这次主要说下实际使用过程中越到的2个问题:
①一个Excel包含多个sheet
②sheet重命名
最近工作中需要用到Excel导出,用的是php的laravel框架,导出Excel就用到maatwebsite这个包。包的具体安装方法
这里就不具体介绍了哈,可以自行百度之。
这次主要说下实际使用过程中越到的2个问题:
①一个Excel包含多个sheet
②sheet重命名
最近估计强制重启了一下电脑,Mac本地的mysql服务挂了,这里记录一下解决方法。
先说下环境:
1 | Macbook Pro 2013款 |
错误:
1 | 执行sudo mysql.server start报错 |
通过报错发现是mysql不让通过root启动,最简单的方式就是强制使用root启动,后面追加–user=root即可
1 | sudo mysql.server start --user=root |
1 | ignore_user_abort(true); |
之前一直都是用git merge命令来合并其它分支的最新改动到本分支的,这样操作的话项目的提交树就会有很多无用的信息,同时用CI工具发布代码的时候迁出就会很慢,回滚则会更慢。
more >>公司的一个项目队列用的是laravel自带的job,框架的版本为5.7,队列用的是数据库驱动,失败的队列会进入musql的failed_jobs表,正在执行的则会进入jobs表。今天越到的一个问题就是由于系统设计问题,经常会出现队列执行失败的情况,需要重新执行队列。这一次偷懒没有用命令行重试而是直接选择了数据库操作,出现一个问题就是sql插入的时候将\变成了\,这样就会导致框架找不到这个job,报
1 | Class does not exist |
这里还有个问题就是job的重试次数是写在代码里的,最终会映射到数据库里的maxTries字段,这里需要说明的是如果是在命令行
1 | php artisan queue:work --sleep=3 --tries=3 |
指定重试次数的话应该不会有这个问题。现在出现了一个严重的死循环问题,laravel的attempts失效了直接到最大值255,然后数据库里数据不断的在被删除和插入,由于增删操作太快通过Navicat已经手工删除不了这条记录,解决方法为用Navicat输入命令行锁表
1 | lock tables jobs write; |
MySQL5.7将默认的sql_mode 从“松散模式”更改为“严格模式”。
我们通过SQL语句
1 | select @@sql_mode; |
查询出 sql_mode ,发现其中有 NO_ZERO_IN_DATE,NO_ZERO_DATE。
1 | sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
严格模式下使用GROUP BY语句做统计的话会报sql语法错误。
解决方法有两个
关闭mysql的严格模式,laravel框架的话只需要修改config下的database.php下mysql下strict改为false即可
临时关闭当前链接的严格模式,laravel框架的话在执行sql前
1 | DB::connection()->select('set SESSION sql_mode=""'); |
1 | insert后返回数据库自增id |
dao层(重点就是不能加@Param注释)
1 | Integer addUser(MpUsers user); |
xml
1 | <insert id="addUser" useGeneratedKeys="true" keyProperty="id" parameterType="com.sgq.user.entity.MpUsers"> |
业务层获取
1 | MpUsers user = new MpUsers(); |
1 | 1、dao层不能传参数,要传Bean |
expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。在实际工作中,我们运行命令、脚本或程序时,这些命令、脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行。而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行
命令 | 作用 |
---|---|
send | 用于向进程发送字符串 |
expect | 从进程接收字符串 |
spawn | 启动新的进程 |
interact | 允许用户交互 |
1 | #!/usr/tcl/bin/expect |
其它还有模式-动作和传参等功能,具体可以问搜索引擎
早就想用火焰图来分析程序的瓶颈了,但是找了一圈并没有发现好用的php火焰图工具,最近发现了github上一个项目,可以生成火焰图,项目地址phpspy,目前只能在Linux系统下使用,Mac和Windows都不支持
1 | PHP 7.2.14 |
由于我使用的是php-fpm,所以需要监听php-fpm的进程来采集信息,命令行如下,其中-V72就是php版本,–time-limit-ms是采样时间,结束后就可以在tmp文件夹下看到svg文件,把svg文件拖进Chrome就可以看到火焰图了
1 | pgrep php-fpm | xargs -P0 -I{} bash -c './phpspy -p {} -V72 --time-limit-ms 6000000 | ./stackcollapse-phpspy.pl | ./vendor/flamegraph.pl > ./tmp/phpspy-flamegraph.{}.svg' |
效果如下
我们直接上项目,不在弄什么java语法啊、spring boot入门啊这些,这些东西网上都可以找到,大部分人搭个环境写个CURD也没什么难度。这里用的是之前公司java技术线的基础框架,spring boot、dubbo、jsonRpc等实现的微服务
具体项目见github
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true