这次可是真的算是在开发上面告一段落了

这次可是真的算是在开发上面告一段落了,评论相关的完善的不能再完善了。
 
昨天在提交大量评论后,发现在审核的时候,如果直接调用 mail()相关的邮件函数发邮件,页面会非常慢,必须等邮件发送程序执行完,才会加载新的页面。
 
这有点不太符合我的预期,太难受了。
 
作为php开发的小菜鸟,本着学习的心态看了下队列相关的东西。
 
大概是两个思路,一个是通过异步加载的方式执行mail()发邮件。
 
另一个是用Redis做队列,不用想当然用Redis。
 
这次可是真的算是在开发上面告一段落了
 
大概看了下Redis的相关教程,找了一段大神的php Redis队列代码,太TM神奇了,没有比这更好理解队列是怎么回事的代码教程了。
 
 
这次可是真的算是在开发上面告一段落了
 
我在本地试着写了个Demo,发现和我理解的一样。
 
一个方向进数据lPush,一个方向出数据rPop,选择左进右出,还是右进左出,都可以,我这里不涉及到优先级问题。
 
本地做完小Demo后就直接上服务器开发了。
 
Redis的配置相对来说还是比较好配置的,Nginx和Apache都有非常详细的教程,一步一步照着操作,基本不会出大问题。
 
安装Redis后,Apache的扩展文件,需要注意下版本,和线性还是非线性版本。
 
队列相关模块开发完后,发邮件的任务就直接扔给指定队列,让它慢慢执行Sendmail()相关函数去。
 
另外开发完这个后,又把"评论回复"的开发了一个模块,这是花时间最多的一个模块,主要太绕脑了。
 
所有回复放到一个Massage_Content中了:
 
string(588) "<a class="comment_at_admin">@ 林羽凡</a>这是一条回复的评论<div class="shadow-box msg" style="visibility: visible; animation-name: fadeInDown;"><div class="msgimg"><img style="top:-1px;height:28px;width:28px;border:0px solid #ddd;margin-right:5px;display:inline!important;" src=""></div><div class="msgtxt"><div class="msgname">林羽凡<span class="LevelName aulevel0">博主</span><span><em>2020-12-29 21:01:06</em></span></div><div class="msgarticle">评论评论评论</div></div></div>"
 
这时如果在回复相关的模块传递这个字符串,会出现一些双引号和单引号匹配的问题,刚开始用json_encode()还可以,但内容多了还是出问题。
 
又用unicode_encode()转码才可以正常传递。
 
unicode_encode()转码完差不多就是这样的了:
 
\u003c\u0061\u0020\u0063\u006c\u0006d\u0065\u006e\u0074\u005f\u0061\0061\
 
发邮件又需要判断,谁回复的谁,回复了什么,空邮件的话判断就不发邮件……
 
总之,一堆判断,野生菜鸟开发者的弊端也就体现出来了,啥都是一遍一遍试,F5都被我按秃噜皮了。
 
 
这次可是真的算是在开发上面告一段落了
 
 
不好,好歹也算是开发出来了,能想到的一些Bug也都避免了。
 
大的项目也是由小项目构成的,这几天加了一个DZQ的官方讨论群,里面的有的同学和我当年刚接触开源软件,差不多操作。
 
先把Power by 改了,把Logo改了,把Title改了,把模板换了。
 
简称三改一换,然后心里美滋滋,给不懂的人一看,你真牛匹。
 
版权不版权的另说,这种学习劲值得鼓励,但如果有条件,还是尽可能的接触一些底层的东西。
 
要不然如果做一名真正的开发者,靠魔改还是很难混日子的,甚至有些东西永远都弄不明白。
 
$this->、__construct()、JO_Base::Load_sys_class() 这种东西,得需要底层磨炼才能真正明白它们的用法和作用。
 
程序开发的魅力在于,不断提高自己,获得自身的成就感。
返回列表
上一篇: