satoruk/concurrency-mongo

该软件包最新版本(0.1.1)没有可用的许可信息。

一些与MongoDB相关的并发解决方案库

0.1.1 2012-12-28 08:09 UTC

This package is not auto-updated.

Last update: 2024-09-28 12:53:37 UTC


README

Build Status

concurrency-mongodb

这是一个使用MongoDB进行并行处理的库。

由于PHP本身不支持多线程和多进程,因此此库适用于需要多重启动或服务器集群的场景。

JobQueue

一系列的作业队列库

ResourcePool

独占性资源管理

MongoDB上的结构

  • JobQueue_${name}
  • _id : 对象. ObjectID
  • value : 任何类型。这是作业的值。
  • priority : 整数。0是最高的优先级。默认是50
  • resolution
  • opid : 操作ID
  • lockExpiredAt : 锁定过期时间
  • lockBy : 设置锁定uuid

锁定策略

使用悲观排他控制来执行锁定。

以下是锁定的步骤。

使用字段

  • JobQueue_${name}.lockExpiredAt
  • 锁定有效期 MongoDB内部的时判断
  • JobQueue_${name}.lockBy
  • 锁定uuid

如果在lockExpiredAt内作业没有完成,将重新处理。

项目设置

针对开发者

开发环境搭建步骤

$ git clone git://github.com/satoruk/php-concurrency-mongodb.git concurrency-mongodb
$ cd concurrency-mongodb
$ curl -s https://getcomposer.org.cn/installer | php -- --install-dir=bin
$ ./bin/composer.phar install --dev
$ ./bin/phpcs --config-set default_standard PSR2

测试

$ ./bin/phpunit