YII2.0连接SQL2008 Console控制台程序定时任务报错问题整理

  1. 通过YII2.0 开发控制台程序 绑定到WIN7定时任务 调用AP接口推数据。

  2. 问题1:
    通过控制台执行时报错 找不到 连接SQL2008的.dll
    解决:复制SQL2008 php_pdo_sqlsrv_55_nts 相关dll时漏掉了 这里一共要复制6个文件到D:\Wamp\bin\php\php5.5.12\ext目录下
    在这里插入图片描述
    这里连接2008 只用到了55的。

  3. 控制台中调用 //配置工具类命名空间
    Yii::$classMap[‘Util’] = ‘@app/lib/Util.php’; 提示找不到类
    解决:在这里插入图片描述
    这里需要配置两个文件WEB是针对项目的 console是针对控制台的配置类
    在这里插入图片描述

  4. 控制台程序中调用
    use yii\httpclient\Client;
    use yii\httpclient\Request;
    use yii\httpclient\RequestEvent;
    调用的API接口 在console中报错获取不到session
    (之前使用CURL调用没有这个问题)
    解决:

return [
    'id' => 'app-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'console\controllers',
    'modules' => [],
    'components' => [
        'user' => [
            'class' => 'yii\web\User',
            'identityClass' => 'common\models\Users',
            'enableAutoLogin' => TRUE,
        ],
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'session' => [ 
            'class' => 'yii\web\Session'
        ],
    ],
    'params' => $params,
];

参考网站:https://stackoverflow.com/questions/34178291/yii2-yii-console-applicationgetsession

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`console.php`是Yii框架中的一个命令行脚本,用于执行各种命令和任务,如数据库迁移、生成代码等。在Yii2中,`console.php`被用于运行控制台应用程序,这些应用程序通常用于处理后台任务、定时任务、计划任务等。 在Yii2中,您可以使用`yii`命令来运行`console.php`脚本,如下所示: ``` php /path/to/your/yii-application/yii <command> ``` 其中,`/path/to/your/yii-application/`是您的Yii应用程序的路径,`<command>`是要执行的命令。例如,要运行数据库迁移命令,可以使用以下命令: ``` php /path/to/your/yii-application/yii migrate ``` 除了运行命令,您还可以使用Yii2Console应用程序来设置定时任务定时任务是指在指定的时间间隔内自动执行的任务。要创建定时任务,您需要执行以下步骤: 1. 创建一个继承自`yii\console\Controller`的控制器,该控制器将处理定时任务的逻辑。 2. 在`console/config/main.php`配置文件中配置一个名为`cron`的组件,该组件将设置定时任务的时间表。 3. 在服务器上设置一个计划任务(cron job),以在指定的时间间隔内运行Yii2console应用程序。 下面是一个简单的示例,演示如何使用Yii2Console应用程序设置定时任务: 1. 创建一个名为`TestController`的控制器,用于处理定时任务的逻辑: ```php <?php namespace app\commands; use yii\console\Controller; class TestController extends Controller { public function actionIndex() { echo "This is a test command\n"; } } ``` 2. 在`console/config/main.php`配置文件中配置一个名为`cron`的组件,该组件将设置定时任务的时间表: ```php <?php return [ // ... 'components' => [ // ... 'cron' => [ 'class' => 'yii\console\CronController', 'schedule' => [ '* * * * *' => ['test/index'], // 每分钟执行一次TestController的index动作 ], ], ], ]; ``` 在上面的配置中,我们创建了一个名为`cron`的组件,它是`yii\console\CronController`的一个实例。`'schedule'`属性包含一个时间表数组,该数组指定了要运行的控制器操作和它们的执行时间。 在上面的示例中,我们设置了一个时间表,每分钟执行一次`TestController`控制器的`index`操作。 3. 在服务器上设置一个计划任务(cron job),以在指定的时间间隔内运行Yii2console应用程序。 在Linux环境中,您可以使用`crontab`命令来设置计划任务。要设置一个计划任务,您需要打开终端并输入以下命令: ``` crontab -e ``` 这将打开一个文本编辑器,在其中输入以下内容: ``` * * * * * /usr/bin/php /path/to/your/yii-application/yii cron/run >> /dev/null 2>&1 ``` 其中,`/usr/bin/php`是PHP解释器的路径,`/path/to/your/yii-application/`是您的Yii应用程序的路径。`cron/run`是您要运行的控制器操作。`>> /dev/null 2>&1`将输出重定向到`/dev/null`,以避免将输出写入日志文件。 这将在每分钟运行一次Yii2Console应用程序,并执行指定的控制器操作。 希望这个示例可以帮助您理解如何使用Yii2Console应用程序设置定时任务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值