Php Yii2-使用调度程序在windows上运行控制台应用程序

Php Yii2-使用调度程序在windows上运行控制台应用程序,php,controller,background,yii2,Php,Controller,Background,Yii2,我正在做yii2。我有一个create函数,我想每24小时在后台运行一次 public function actionCreate() { $model = new MeterPing(); // CURL code to get results from web-api if ($model->load(Yii::$app->request->post()) && $model->save()) { retu

我正在做
yii2
。我有一个create函数,我想每24小时在后台运行一次

 public function actionCreate()
{
    $model = new MeterPing();

    // CURL code to get results from web-api

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}
同样在这个函数中,我将从
webapi
获取一些记录。但我主要关心的是每24小时在后台运行上述功能

更新1

根据给出的建议,我已在
console\controller

namespace console\controllers;

use yii\console\Controller;

class TestController extends Controller {

public function actionIndex() {
    echo "cron service runnning";
}}
现在,为了测试它,我遵循这一点,并使用带有以下参数的
cmd
创建了一个运行服务

现在,按照建议,我已经尝试了每一步。
.bat
文件包含

@Echo off
title My Cron Job
:: See title at the top
php E:\xampp\htdocs\inventory-web\yii test
pause
保存文件并将其添加到任务计划程序后。我试图从这个界面运行它。我确实看到cmd打开并显示了消息


我怎么做?任何帮助都将不胜感激。

在我看来,您正在寻找一个合适的人选

您必须创建一个控制台cronjob,然后将其添加到服务器上的crontab中。上面的链接有一个关于如何为Yii2设置此功能的wiki

每天下午3点运行的crontab示例:

0 15 * * * /var/www/project/yii daemon/create

在我看来,你正在寻找一个合适的人选

您必须创建一个控制台cronjob,然后将其添加到服务器上的crontab中。上面的链接有一个关于如何为Yii2设置此功能的wiki

每天下午3点运行的crontab示例:

0 15 * * * /var/www/project/yii daemon/create

您可以使用windows任务计划程序

  • 如果创建扩展
    Yii\console\controller
    的控制器类
    TestController
    ,并添加
    Create
    操作,则创建一个
    .bat
    文件,该文件应包含运行Yii控制台应用程序的命令,要从Yii控制台应用程序运行该操作,您需要使用gitBash或console在项目根目录上键入
    /Yii test/create
    ,因此我们将通过提供Yii控制台引导文件
    项目根目录/Yii
    的完整路径,将此命令添加到
    .bat
    文件中。这是作为Yii控制器操作代码的一部分运行作业的主要内容
打开记事本,将下面的代码复制到记事本中,另存为
.bat
,名称为
my cronjob.bat

@Echo off
title My Cron Job
:: See title at the top
php F:\xampp\htdocs\my-project\yii test/create
pause
注意:确保您在中有
php
,或者您应该在上述
.bat
文件中提供
php.exe
的完整路径

创建任务计划程序的步骤
  • 在“开始”菜单中键入任务计划程序并将其打开

  • 创建基本任务

  • 为任务写一个名称

  • 选择触发时间
    每日

  • 选择执行任务的时间

  • 选择
    操作
    启动程序

  • 现在选择
    my cronjob.bat
    文件,然后按Next并完成

  • 现在转到任务管理器,选择
    任务计划程序库
    ,右键单击刚创建的cronjob并打开属性。

  • 选择
    以最高权限运行
注意:如果用户登录或未登录,您可以选择运行cronjob,默认情况下,它仅在用户登录时运行。您可以更改该选项

也就是说,现在您可以通过右键单击并选择“运行”手动运行任务,它将运行
my cronjob.bat
中指定的所需
controller/action
,或者等待它在指定时间触发

用于在后台运行 上述设置将打开命令提示符并运行任务。如果希望计划程序运行任务,则应查看此设置并相应更新任务设置。此外,您还可以将最后一行
暂停
更改为
退出


在将答案发布到这里之前,我已经测试了它,因为我家里有
Windows10
OS,所以如果不在office进行测试,就无法发布答案。

您可以使用windows任务计划程序

  • 如果创建扩展
    Yii\console\controller
    的控制器类
    TestController
    ,并添加
    Create
    操作,则创建一个
    .bat
    文件,该文件应包含运行Yii控制台应用程序的命令,要从Yii控制台应用程序运行该操作,您需要使用gitBash或console在项目根目录上键入
    /Yii test/create
    ,因此我们将通过提供Yii控制台引导文件
    项目根目录/Yii
    的完整路径,将此命令添加到
    .bat
    文件中。这是作为Yii控制器操作代码的一部分运行作业的主要内容
打开记事本,将下面的代码复制到记事本中,另存为
.bat
,名称为
my cronjob.bat

@Echo off
title My Cron Job
:: See title at the top
php F:\xampp\htdocs\my-project\yii test/create
pause
注意:确保您在中有
php
,或者您应该在上述
.bat
文件中提供
php.exe
的完整路径

创建任务计划程序的步骤
  • 在“开始”菜单中键入任务计划程序并将其打开

  • 创建基本任务

  • 为任务写一个名称

  • 选择触发时间
    每日

  • 选择执行任务的时间

  • 选择
    操作
    启动程序

  • 现在选择
    my cronjob.bat
    文件,然后按Next并完成