1. 问题
定时脚本按照定时时间运行php时,如果出现脚本时间运行过长时,会出现同一时间有多于一个脚本在运行,但这不符合某些特定场景,因此需要给脚本加个锁,加锁方式有多种。
进程锁是检测进程中有某个脚本在运行时,就不打开同一个新的脚本。
2. 开发
<?$redis_key = sprintf("%s:%s",MAIN_HOST,"jl_alarm_redis_lock");$ret = $redis->get($redis_key);if ($ret) {$exist = posix_getsid($ret); // 进程sidif ($exist) {$redis->set($redis_key,$ret,5);_log("脚本已加锁,正在执行,无法再创建新的脚本任务");die();}}$pid = posix_getpid(); // 当前进程pid$redis->set($redis_key,$pid,5);
