关于laravel 数据库事务使用的一个小坑

事情大概发生在几个月前,在开发过程中遇到了事务无法回滚的情况,前后排查了1小时没有找到问题的原因,最后我觉得从这个业务的每一个model去排查,最后发现了事务开启过程中的细微差别。

在我们线上的业务应用中,为了缓解数据库的访问压力,我们通常会为数据库设置主从数据库,主数据库用于写,从数据库用于读。而在我们的model配置中如果不设置连接主数据库的话,通常会走default配置。而如果你的default配置是读库,那么在进行数据库回滚的时候就会出现问题。

相当于你在主数据库开启了失误,而在从数据库进行commit或roallback,而避免出现这种情况的最好方式就是在model使用的过程中,加上强制连接主库,这样就不会出现与我类似的问题。

lua学习笔记

本周入职了新公司,经过了短暂的入职,很快就投入到热火朝天的工作当中,领导帮忙开了虚拟机,就可以开干了。

lua也是一门脚本语言,在学些了一段时间之后,感觉比php更自由。

1.首先变量的默认声明 将 声明为 全局变量 ,局部变量将通过 local var 进行声明。

2.lua的语句结束之后,不需要分号做为结束,换行后即代表语句的结束。

3.lua的table结构与php数组结构类似,它同时支持数组和键值存储的形式。

4.lua的判断只有 nil和false为假 ,0和空字符串也会为真,这点与php也是有不晓得区别。

5.lua的table循环 需要使用到迭代器 对于数组性质的table 采用ipairs迭代器 ,对于 键值性质的table采用pairs迭代器。

6.lua if for 和function 的开始结束 没有{} 结束是通过end进行。

7.关于字符串的拼接 需要时使用 .. 而不是一般语言的 . 或者 + ,这也会对一些其他语言的使用者造成困扰。

8.关于正则模式匹配问题。OpenResty 中并行着两套字符串匹配方法,

Lua 自带的 sting 库,以及 OpenResty 提供的 ngx.re.* API。