事情是这样的
最近要做一个类似于快到退房时间了,给用户发了短信加个系统消息,告诉他该退房了,恩,那就做呗
唉?等等,公司是windows服务器啊!定时任务很垃圾啊!没关系没关系,想想办法
于是,我就有了接下来的心路历程:
1.直接用PHP写定时任务
首先,set_time_limit之类的,然后就是循环,睡觉,循环,睡觉。
但是一想到他时时刻刻在循环执行,公司那个弱小的服务器和一万年前的PHP版本就可怕,算了换一个
2.用swoole吧,最近好像挺火的,据说能做定时秒杀什么的
恩,打开手册,这都是啥?各种依赖就PHP版本那关都没过去,公司的环境我也不敢随意配,算了算了,再换一种
3.那就写个bat脚本吧
恩,然后用windows自带的定时任务点点点,设置让他定时执行脚本访问PHP文件,恩,就这么定了
唉?不行不行,这样我框架里封装好的短信类都不能使了啊,还得再引过来,而且数据库我还得用PDO!好麻烦,算了再换一个
4.那干脆定时访问url吧
还是搞个bat脚本,定时打开url,恩,听起来不错
但是仔细一想,堂堂服务器,一会自己打开一下浏览器,想想就low啊!不行不行
5.公司服务器是windows,我自己的是Linux啊!
于是:
搞了个表,用户入住后存下来离店退房时间(我们是分时段订房),再来个未读标识
然后搞了个接口,把未读快到时间的都拿出来,一起发短信,发系统消息,而后再改成已读。
在我自己服务器定个时,一个小时访问一次这个接口,完美
所以,服务器不要用windows!