t-kanstantsin/yii2-action-lock-behavior

允许同时只运行一个动作实例

安装: 387

依赖: 0

建议者: 0

安全: 0

星星: 0

观察者: 0

分支: 0

类型:yii2-extension

2.0.0 2019-02-14 08:39 UTC

This package is not auto-updated.

Last update: 2024-09-15 05:23:38 UTC


README

Yii小部件

Latest Stable Version Total Downloads

基本

该行为允许使用 yii\mutex\* 包禁止同一控制台应用程序动作的多次运行(例如,通过cron启动的长执行任务)。

选择锁定源时请注意以下内容

  • yii\mutex\FileMutex 简单,但只能用于 单个Docker容器实例,因为无法确定进程是否仍在运行或已在另一个容器中结束。需要可写目录

  • yii\mutex\DbMutex 需要数据库连接。可能只能与单个数据库实例一起使用。

示例

使用全局配置中的互斥锁

    public function behaviors(): array
    {
        return [
            'pid' => ActionLockBehavior::class,
        ];
    }

动态定义互斥锁

    public function behaviors(): array
    {
        return [
            'pid' => [
                'class' => ActionLockBehavior::class,
                'mutex' => [
                    'class' => FileMutex::class,
                    'mutexPath' => \Yii::getAlias('@runtime/pid'),
                ],
            ],
        ];
    }