AtomicLock

AtomicLock 是单机进程锁,会阻塞。

使用前需要配置 Atomic。

注意!会阻塞当前进程,不建议在 worker 进程中使用!

类:Imi\Lock\Handler\Atomic

Bean 名:AtomicLock

可配置参数

  1. /**
  2. * 锁的唯一 ID
  3. *
  4. * @var string
  5. */
  6. protected $id;
  7. /**
  8. * 等待锁超时时间,单位:毫秒,0为不限制
  9. *
  10. * @var int
  11. */
  12. protected $waitTimeout = 3000;
  13. /**
  14. * 锁超时时间,单位:毫秒
  15. *
  16. * @var int
  17. */
  18. protected $lockExpire = 3000;
  19. /**
  20. * 配置的 Atomic 名称
  21. *
  22. * @var string
  23. */
  24. public $atomicName;
  25. /**
  26. * 同时获得锁的数量
  27. *
  28. * @var int
  29. */
  30. public $quantity = 1;

配置示例

  1. // 锁
  2. 'lock' =>[
  3. 'list' => [
  4. 'atomic' => [
  5. 'class' => 'AtomicLock',
  6. 'options' => [
  7. 'atomicName' => 'atomicLock',
  8. ],
  9. ],
  10. ],
  11. ],