PHP 进程同步

经常遇到这样一种情况,计划任务定时后台执行某个php程序,有时候也需要手动执行,可能多个人都需要执行这个程序,如果任务持续时间长,就很容易造成重复执行,所以就有了下面的工具。

已在生产环境长时间稳定运行。

https://github.com/ares333/yaf-library/blob/master/Helper/System.php

/**
 * synchronized by file lock
 *
 * @param string $lockFile
 * @param mixed $callback
 * @param array $param_arr
 */
static function synchronized($lockFile, $callback, $param_arr = array()) {
	if (PHP_OS != 'Linux') {
		user_error ( __METHOD__ . ' can only run in Linux', E_USER_WARNING );
		return false;
	}
	clearstatcache ( true, $lockFile );
	$f = fopen ( $lockFile, 'c+' );
	if (flock ( $f, LOCK_EX | LOCK_NB )) {
		call_user_func_array ( $callback, $param_arr );
	}
	flock ( $f, LOCK_UN );
	fclose ( $f );
}

 

PHP 进程同步》上有2条评论

  1. Pingback引用通告: PHP 进程同步 | 乐都网技术团队博客

发表评论

电子邮件地址不会被公开。

CAPTCHA

*