更新

最近博客没更新是因为一直在忙,毕设只做了一点,然后就去接外包了。

这次接的外包总的来说就是钱少事多。


linux服务器遇见的问题

我完成了一大壮举,使用了rm -rf /*,删除了服务器的所有文件,这次属实怪我,真成段子了。

熟悉了部分命令

  • rm 删除命令
  • unzip解压命令
  • lsof查看端口命令
  • kill等命令
  • mysql在linux的日常使用命令
  • ls等获取路径和路径选择等命令

代码问题

Go

这次单子的主要逻辑和bug是数据库和json转换问题。

uc支付回调会重复多次,而这套游戏框架的源码有bug,自定义的命令完全不行,如:
mysql部分截图

只是简单的插入,他却使用自己定义的命令,无法正常插入表,打开的数据库连接和连接池设定也有部分问题,
由于无法正常插入而导致的重复服务器发货问题,还得自己解决。

好累.jpg。

uc回调后的数据被解析为byte字节数组,转化为string时,发生了不能将url编码过的encode编码解析,而应为位数不符合3特殊字符,而部分内容无法解析,如:

url.QueryEscape()

这个命令完全不行,而我想了想,觉得可以使用这样的方案来解决:

str:=string(this.Ctx.Input.RequestBody)
    strbody,_:=url.ParseQuery(str)
    strbody["biz_content"][0], _ = url.QueryUnescape(strbody["biz_content"][0])

这样将没有正常进行转换的那一部分给转化,这样就能成功。

友情提示:当字符没有经过encode正常解码(特殊字符同样)时,进行json的二进制流编码转化会报错。

而json转化必定失败,于是只能这么操作:

ob.App_id=strbody["app_id"][0]
    ob.Client_id=strbody["client_id"][0]
    ob.Biz_content=strbody["biz_content"][0]
    ob.Nonce_str=strbody["nonce_str"][0]
    ob.Sign=strbody["sign"][0]
    ob.Sign_type=strbody["sign_type"][0]
    ob.Version=strbody["version"][0]

这样我看着也非常蠢,有算法可以优化,但是钱给的少,没必要(冷漠脸)。


上限服务器遇见过的问题

  1. root 权限才能正常运行文件,需要给予权限进行端口占用
  2. 使用Go生成的二进制文件需要足够的权限
  3. beego的日志包和logrus包有bug冲突,判断时hook问题
  4. linux有些时候数据文件夹不见了,可能是未挂载数据盘的问题
  5. linux不要用高权限来做危险操作
  6. rm命令,不要图方便用它

不要用rm等危险命令了,我都成段子了。

最后修改:2021 年 10 月 16 日
如果觉得我的文章对你有用,请随意赞赏