PHP定时任务没加锁,两分钟跑两次用户收两遍通知,加文件锁,一次只跑一个进程
新手写PHP定时任务,脚本跑起来忘加锁,两个进程同时跑,把数据重复处理,用户收到两遍通知,其实定时任务加个锁,就不会重复跑。第一,脚本开头加个文件锁,脚本跑的时候生成锁文件,别的进程看到锁文件就直接退出,别重复跑;第二,定时任务别用页面访问触发,关了网站脚本就不跑,用服务器的crontab执行PHP脚本;第三,脚本跑完把执行日志写下来,出问题能看日志查;第四,执行时间别太频繁,别一秒跑一次,把服务器CPU占满。
我之前写的定时发文章脚本,没加锁,两分钟跑两次,用户收到两遍文章通知,加上文件锁之后,脚本一次只跑一个进程,再也没重复过。很多新手写定时任务,直接放crontab里跑,没加锁,并发的时候重复执行。
本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。
0