zhuravljov / yii2-queue-monitor

Yii2 Queue Analytics Module
BSD 3-Clause "New" or "Revised" License
101 stars 24 forks source link

Please, add details to documentation #16

Closed itelmenko closed 5 years ago

itelmenko commented 5 years ago

Thanks for cool package.

Could you add some description into documentation. For example:

return [
    'container' => [
        'singletons' => [
            \zhuravljov\yii\queue\monitor\Env::class => [
                'cache' => 'cache',
                'db' => 'db',
                'pushTableName'   => '{{%queue_push}}',
                'execTableName'   => '{{%queue_exec}}',
                'workerTableName' => '{{%queue_worker}}',
            ],
        ],
    ],
];

What are pushTableName, execTableName options? What do these lines mean:

 'cache' => 'cache',
 'db' => 'db',

?

What if I use redis as queue driver?

zhuravljov commented 5 years ago

What are pushTableName, execTableName options? What do these lines mean:

This options allow to customize db connection and table names to store.

What if I use redis as queue driver?

The extension works correctly for any driver of yii2-queue because uses event handlers only.

itelmenko commented 5 years ago

This options allow to customize db connection and table names to store.

Could you add more details?

zhuravljov commented 5 years ago

This is standard way to configure. What details are you interested directly?

itelmenko commented 5 years ago

What are pushTableName, execTableName, workerTableName?

This is standard way to configure.

'cache' => 'cache',
 'db' => 'db',

Could you add reference to documentation where these parameters described?

zhuravljov commented 5 years ago

Excuse me, how well do you know the framework?

Learn source of \zhuravljov\yii\queue\monitor\Env: https://github.com/zhuravljov/yii2-queue-monitor/blob/da4ce413951112620ee35ef8d26769b542a19fa4/src/Env.php#L62-L63 It uses Instance::ensure() helper, and this is way to forward dependency without code coupling. Example of usage inside Yii2 engine: DbTarget, DbMutex, DbSession, etc.

'cache' => 'cache',
 'db' => 'db',

This part of configuration says that the module uses common db and cache components. But you can configure separate db connetion or cache by yourself if you want.

itelmenko commented 5 years ago

I meant 'cache' => 'cache', 'db' => 'db', in current context. Why can't it use global settings? Or it make sense in current context for some reason?

What are pushTableName, execTableName, workerTableName?

And how can I manually retry failed job?

zhuravljov commented 5 years ago

I meant 'cache' => 'cache', 'db' => 'db', in current context. Why can't it use global settings? Or it make sense in current context for some reason?

Это и есть использование глобальных настроек. С таким конфигом расширение будет использовать общее для всего приложения подключение к БД. То есть то подключение, что у вас конфигурируется в $config['components']['db']. То же самое и для кеша. Но, кроме прочего, этот способ дает возможность индивидуальной настройки. Если нужно данные модуля хранить на отдельном сервере, в отдельной базе данных, или вообще с помощью другой СУБД, совместимой с Yii2.

What are pushTableName, execTableName, workerTableName?

Названия таблиц, в которых будут храниться данные модуля. pushTableName - таблица, которая регистрирует отправленные в очередь задания; execTableName - хранение попыток выполнения заданий; workerTableName - лог запущенных воркеров. Если вы используете yiisoft/yii2-queue, то эти вещи не должны вызывать вопросов.

And how can I manually retry failed job?

Флаг Module::$canPushAgain. Если выставить в true, в интерфейсе появится соответствующая кнопка Push Again: screenshot

itelmenko commented 5 years ago

Спасибо. Теперь все ясно