一个菜鸟驿站!

执行队列所踩得坑

PHP 2018-09-04 浏览(3234) 评论(4)
- N +

文章目录 [+]

以前一直都在Linux上边开发,自从换了Mac之后呢,就在Mac上边开发了,某一天,公司的老大说是让跑个队列,修改数据库中的图片地址,详情如下:

  1. 下载访问为200的图片,上传到七牛云上边,并且替换掉;

  2. 临时域名替换掉为正式域名因为七牛云的临时域名每天是有固定访问人数的);

  3. 将相对路径改为绝对路径,将/Uploads/**.img 改为http://***.com/**.img。

坑一:

这是一个比较尴尬的事情,为什么呢,因为我在队列只要一查询数据就会报错,

上边一堆代码
$articleNewData = CostaNews::find ( $this->data[ 'NewsId' ] );

然后呢,他就会报错,很多人看到这里就不想看了,然后说肯定数据没有啊什么的,其实不对,因为队列在终端跑的,而我用的mamp,所以需要添加一个配置,如下图:

image.png

image.png

其实就是这个配置,因为在链接数据库的时候,需要使用 socket 来链接本地数据库(mamp集成环境),加上之后就没有了问题。

坑二:

等我自信满满的开始跑队列之后,然后呢,因为好几万的数据,比较多,我就等着,然后到了40的时候终于出事了,抛出错误一看,如下图:

mysql因为内存不足出错.png


提示我text字段存放不进去数据了,要知道,text字段可是很大的了,

image.png

因为当时确实没有测试这个数据到底多大,所以也就比较尴尬了,因为最终的问题并没有找到,最终我还是认为因为数据包太大,导致了无法修改,那么我Google到的方法如下三种:

  1. 将线上的环境text改为longtext,这个可以运行迁移文件,或者直接改,随便,开心就好(未测试);

  2. 修改数据包大小限制,这个为临时修改,重启服务器或者mysql之后,自动还原,如下mysql命令
    set global max_allowed_packet = 1*1024*1024*5

  3. 最后一种并不建议去做,因为线上的环境不允许去修改配置文件并且重启服务器(修改max_allowed_packet配置,请自行百度)。

我用的是第二种方法,但是也的确的生效了,比较尴尬。

开发的路上总是各种跌宕起伏,给大家推荐一本书,很好看哦

从入门到放弃 (10).jpg

希望大家在学习PHP的过程中不要死掉~~~

标签:
作者:猫巷

,

评论列表 (4)条评论
网友昵称:访客
访客游客6年前 (2018-09-04)回复
网友昵称:访客
访客游客6年前 (2018-09-06)回复
你TM逗我笑了
网友昵称:猫巷
猫巷管理员6年前 (2018-09-10)回复
@猫巷 哦,多笑笑比较开心嘛
网友昵称:essayulan
essayulan游客6年前 (2018-10-02)回复
期望楼主的博客越来越好

发表评论

召唤伊斯特瓦尔