- 博客(9)
- 收藏
- 关注
原创 go-zero的坑
搞了一天,容器就是启动不了。开始以为是部署代码的问题,后面在服务器直接安装了go环境,直接启动,提示redis ping error。打印了一下,发现真是密码错误,密码丢了部分字符。密码类似:dsdsdwqwqw#888dsds$wee,结果打印出来的是dsdsdwqwqw#888dsds,神奇了不是?另外几个服务也是用的这个密码,并没有丢失字符。其他服务的代码中不包含conf.UseEnv(),那这个方法做了什么?如果wee=aaa,则密码会被替换成dsdsdwqwqw#888dsdsaaa。
2023-05-05 12:08:59
284
原创 文件加载异常问题排查
发现supervisor的最大文件描述符数量太小(Max open files为1024),被supervisor管理的子进程会继承父进程的文件描述数量限制,导致加载文件失败。常驻内存脚本执行逻辑微信分账接口调用前会加载cert文件,运行一段时间后发现加载文件失败导致调用微信接口失败。1.问题表象时调用微信接口失败,先查cert文件是否存在。4.刨根问题,为啥常驻消费脚本的文件打开数量能大于1024.代码单例curl请求微信接口,还是老老实实每次new吧。2.猜测是文件打开太多到达西安痛导致加载失败。
2022-12-09 18:34:13
297
原创 mac中docker desktop报错解决
Are you trying to mount a directory onto a file or vice-versa
2022-09-07 16:51:37
997
原创 接口响应防止出现null返回
从后台的角度来说,api中返回的数据中,正确值和空值的类型必须一样,举例,用户名的字段是“realname”: “xxx”,如果用户名为空,则应该返回“realname”:”“。如果返回值是一个array,空数据则返回一个空array,如果返回值是一个对象,空数据则返回一个空对象,绝对禁止null值。那么我们应该怎么处理这个问题呢?实际上在spring框架中可以这样:<mvc:anno...
2019-04-09 20:03:42
1938
原创 swoft 使用redis lua script实现高性能抢红包
废话不多说,直接上代码:if redis.call('hexists', KEYS[3], KEYS[4]) ~= 0 then return 1;--该用户已抢过红包else-- 先取出一个小红包 local hongBao = redis.call('rpop', KEYS[1]); if hongBao then local x = cjso...
2019-03-22 17:15:00
297
原创 swoft框架改造:Task中使用协程执行代码
由于swoft框架开发的时候,swoole的TaskWorker尚不支持运行协程代码。现在我们要对框架进行改造,使之能能运行协程代码。1..env增加# Swoole Settings下增加TASK_ENABLE_CO=true2.config/server.php setting数组中增加'task_enable_coroutine' => env('TASK_ENABLE_C...
2019-03-19 10:06:28
955
原创 guzzle驱动设置
Guzzle的驱动默认有三种(curl、stream、socket),当然也可以自己去扩展。 局部设置 use GuzzleHttp\Client;use GuzzleHttp\HandlerStack;use GuzzleHttp\Handler\CurlHandler; $handler = new CurlHandler();$stack = HandlerStac...
2019-02-19 11:34:04
592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人