zerkalica/semaphore
Composer 安装命令:
composer require zerkalica/semaphore
包简介
This library provides an api for semaphore acquire and release
关键字:
README 文档
README
This library provides an api for semaphore acquire and release.
Support adapters: flock, pdo, doctrine/orm, apc, memcached, sem
Usage:
$adapter = new \Millwright\Semaphore\Adapter\ApcAdapter; $semaphore = new \Millwright\Semaphore\Model\SemaphoreManager($adapter); $ttl = 60; // Time in seconds, used, if script dies and release never called. $handle = $semaphore->acquire('lock key', $ttl); // Do something thread-safe $semaphore->release($handle);
SQL table schema:
CREATE TABLE `semaphore__semaphore` ( `id` int(11) NOT NULL AUTO_INCREMENT, `expire_date` datetime NOT NULL, `semaphore_key` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `semaphore_key_idx` (`semaphore_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Example model for doctrine adapter. Doctrine adapter works directrly with sql-table. This model only creates appropriate table.
/** * Semaphore entity * * @ORM\Entity() * * @ORM\Table(name="semaphore__semaphore", * uniqueConstraints={@ORM\UniqueConstraint(name="semaphore_key_idx", columns={"semaphore_key"})} * ) */ class Semaphore { /** * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\Column(name="expire_date", type="datetime", nullable=false) */ protected $date; /** * @ORM\Column(name="semaphore_key", type="string", nullable=false) */ protected $key; }
统计信息
- 总下载量: 19.31k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 11
- 点击次数: 0
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2012-08-03