ha1t / php-LiteLock

flock()を利用したシンプルなロック機構を実現するライブラリ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

php-LiteLock

minimal flock() wrapper class.

Example

<?php
/**
 * 10秒かかる処理をロックして行うサンプル
 *
 * このプログラムを2つ同時に起動すると、先に実行された処理が終わるのを待ってから、次の処理が実行される。
 *
 * この仕組みを使うことで、必ず1秒以上感覚をあけてリクエストする事を要求されるAPIを、
 * Web上から安定して呼ぶ事ができる
 */

require_once dirname(dirname(__FILE__)) . '/LiteLock.php';

$lock_file = '/tmp/lock';
$lock = new LiteLock($lock_file);

echo "start lock:" . date('Y-m-d H:i:s') . PHP_EOL;
$lock->lock();
sleep(10);
$lock->unlock();
echo "end lock:" . date('Y-m-d H:i:s') . PHP_EOL;

About

flock()を利用したシンプルなロック機構を実現するライブラリ

License:MIT License


Languages

Language:PHP 100.0%