Configuration 我们在项目中的何处配置Yii2队列扩展?
我正在尝试使用yii2队列 它说: 为了使用扩展,您必须像 以下:Configuration 我们在项目中的何处配置Yii2队列扩展?,configuration,yii2,Configuration,Yii2,我正在尝试使用yii2队列 它说: 为了使用扩展,您必须像 以下: return [ 'bootstrap' => [ 'queue', // The component registers its own console commands ], 'components' => [ 'queue' => [ 'class' => \yii\queue\<driv
return [
'bootstrap' => [
'queue', // The component registers its own console commands
],
'components' => [
'queue' => [
'class' => \yii\queue\<driver>\Queue::class,
'as log' => \yii\queue\LogBehavior::class,
// Other driver options
],
],
];
返回[
'引导'=>[
'queue',//组件注册自己的控制台命令
],
“组件”=>[
“队列”=>[
'class'=>\yii\queue\\queue::class,
“作为日志”=>\yii\queue\LogBehavior::class,
//其他驱动程序选项
],
],
];
我的问题很简单:我应该把代码放在哪个PHP文件、哪个目录中
注意:我正在使用基本模板。对于Yii2 Basic模板
config/console.php
return [
'bootstrap' => [
'log',
'queue',
],
'components' => [
'queue' => [
'class' => \yii\queue\db\Queue::class,
'db' => 'db', // DB connection component or its config
'tableName' => '{{%queue}}', // Table name
'channel' => 'default', // Queue channel key
'mutex' => \yii\mutex\MysqlMutex::class, // Mutex that used to sync queries
'as log' => \yii\queue\LogBehavior::class,
// 'deleteReleased' => YII_ENV_PROD,
],
]
];
对于Yii2 AdvancedTemplateconsole/config/main.php
return [
'bootstrap' => [
'log',
'queue',
],
'components' => [
'queue' => [
'class' => \yii\queue\db\Queue::class,
'db' => 'db', // DB connection component or its config
'tableName' => '{{%queue}}', // Table name
'channel' => 'default', // Queue channel key
'mutex' => \yii\mutex\MysqlMutex::class, // Mutex that used to sync queries
'as log' => \yii\queue\LogBehavior::class,
// 'deleteReleased' => YII_ENV_PROD,
],
]
];
参见了解Yii2 Basic模板
config/console.php
return [
'bootstrap' => [
'log',
'queue',
],
'components' => [
'queue' => [
'class' => \yii\queue\db\Queue::class,
'db' => 'db', // DB connection component or its config
'tableName' => '{{%queue}}', // Table name
'channel' => 'default', // Queue channel key
'mutex' => \yii\mutex\MysqlMutex::class, // Mutex that used to sync queries
'as log' => \yii\queue\LogBehavior::class,
// 'deleteReleased' => YII_ENV_PROD,
],
]
];
对于Yii2 AdvancedTemplateconsole/config/main.php
return [
'bootstrap' => [
'log',
'queue',
],
'components' => [
'queue' => [
'class' => \yii\queue\db\Queue::class,
'db' => 'db', // DB connection component or its config
'tableName' => '{{%queue}}', // Table name
'channel' => 'default', // Queue channel key
'mutex' => \yii\mutex\MysqlMutex::class, // Mutex that used to sync queries
'as log' => \yii\queue\LogBehavior::class,
// 'deleteReleased' => YII_ENV_PROD,
],
]
];
请参阅在Yi2 basic上配置它非常简单,在config/web.php文件中添加以下配置,对于Yi2 advanced,如果使用前端,则添加到前端/config/main.php,如果使用后端,则添加到后端/config.main.php 就这样
'components' => [
'request' => [
'cookieValidationKey' => 'htXdOInCiP6ut4gNbDO2',
'csrfParam' => '_frontendCSRF',
],
'queue' => [
'class' => \yii\queue\<driver>\Queue::class,
'as log' => \yii\queue\LogBehavior::class,
// Other driver options
],
]
“组件”=>[
“请求”=>[
'cookieValidationKey'=>'htXdOInCiP6ut4gNbDO2',
'csrfParam'=>'u frontendCSRF',
],
“队列”=>[
'class'=>\yii\queue\\queue::class,
“作为日志”=>\yii\queue\LogBehavior::class,
//其他驱动程序选项
],
]
在Yi2 basic上配置它非常简单,在config/web.php文件上添加以下配置,对于Yi2 advanced,如果使用前端,则添加到前端/config/main.php,如果使用后端,则添加到后端/config.main.php
就这样
'components' => [
'request' => [
'cookieValidationKey' => 'htXdOInCiP6ut4gNbDO2',
'csrfParam' => '_frontendCSRF',
],
'queue' => [
'class' => \yii\queue\<driver>\Queue::class,
'as log' => \yii\queue\LogBehavior::class,
// Other driver options
],
]
“组件”=>[
“请求”=>[
'cookieValidationKey'=>'htXdOInCiP6ut4gNbDO2',
'csrfParam'=>'u frontendCSRF',
],
“队列”=>[
'class'=>\yii\queue\\queue::class,
“作为日志”=>\yii\queue\LogBehavior::class,
//其他驱动程序选项
],
]
像这样添加到后端或前端的main.php文件中
“引导程序”=>[“日志”,“队列”],
Add this to under component array
'queue' => [
'class' => Queue::class,
'db' => 'db', // DB connection component or its config
'tableName' => '{{%db_queue}}', // Table name
'channel' => 'default', // Queue channel key
'mutex' => MysqlMutex::class, // Mutex used to sync queries
]
要使其正常工作,您需要在console/config/main.php中执行相同的操作
归档并运行命令listen form documentation on
添加到后端或前端的main.php文件,如下所示
“引导程序”=>[“日志”,“队列”],
Add this to under component array
'queue' => [
'class' => Queue::class,
'db' => 'db', // DB connection component or its config
'tableName' => '{{%db_queue}}', // Table name
'channel' => 'default', // Queue channel key
'mutex' => MysqlMutex::class, // Mutex used to sync queries
]
要使其正常工作,您需要在console/config/main.php中执行相同的操作
归档并运行命令listen form documentation on
请注意,这可能是一个相关的问题,不确定:它取决于初级
config\console.php
的Yii2模板,高级可以是console\config\main.php
中的一个,我使用的是初级模板。感谢您的回答,但是“web”文件夹不包含config.php或console.php.Yii2基本模板config\console.php
请注意,这可能是一个相关问题,不确定:基本config\console.php
取决于Yii2模板,高级console\config\main.php
可以是我使用的基本模板之一。感谢您的回答,但是“web”文件夹不包含config.php或console.php.Yii2基本模板config\console.php
@anroy如果此答案有用,则将其标记为tick and upvote,因为它对另一个答案有用。请注意,基本模板没有共享配置-如果您想使用来自web的队列,您还需要在config/web.php
中配置它。。。谢谢然而,config/console.php中有很多代码。现在还不清楚我将如何将这个单一的(但很大的)返回语句放入其中。正在设置并返回一个变量$config$配置=['id'=>'basic console','basePath'=>dirname(DIR),'bootstrap'=>['log'],..@anroy将queue
数组放入components
@vishuB很简单,谢谢。在Yii2基本模板中,“bootstrap”和“components”数组已经填充了其他内容。因此,正如您所写,我在这些数组中添加了“queue”。但是现在在我的代码中,我尝试使用“queue”我收到一个找不到“\yii\queue\JobInterface”的错误。我声明“use\yii\queue\JobInterface”在PHP文件的顶部。有人知道这个问题的解决方案吗?或者我应该在StackOverflow中创建一个单独的问题吗?@anroy如果这个答案有用,那么标记为tick and upvote,因为它对另一个有用。请注意,基本模板没有共享配置-如果您想使用来自web的队列,您还需要在config/web.php
。好的……谢谢。但是config/console.php中有很多代码。不清楚如何将单个(但很大的)return语句放入其中。设置并返回一个变量$config。$config=['id'=>'basic console','basePath'=>dirname(DIR),'bootstrap'=>['log'],..@anroy将queue
数组放入components
@vishuB很简单,谢谢。在Yii2基本模板中,“bootstrap”和“components”数组已经填充了其他内容。因此,正如您所写,我在这些数组中添加了“queue”。但是现在在我的代码中,我尝试使用“queue”我发现一个错误,它找不到“\yii\queue\JobInterface”。我在该PHP文件的顶部声明“use\yii\queue\JobInterface”。有人知道解决方法吗?或者我应该在StackOverflow中创建一个单独的问题吗?