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
文件,该文件应包含运行Yii控制台应用程序的命令,要从Yii控制台应用程序运行该操作,您需要使用gitBash或console在项目根目录上键入.bat
,因此我们将通过提供Yii控制台引导文件/Yii test/create
的完整路径,将此命令添加到项目根目录/Yii
文件中。这是作为Yii控制器操作代码的一部分运行作业的主要内容.bat
.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
的完整路径
创建任务计划程序的步骤
- 在“开始”菜单中键入任务计划程序并将其打开
- 创建基本任务
- 为任务写一个名称
- 选择触发时间
每日
- 选择执行任务的时间
- 选择
启动程序操作
- 现在选择
文件,然后按Next并完成my cronjob.bat
- 现在转到任务管理器,选择
,右键单击刚创建的cronjob并打开属性。任务计划程序库
- 选择
以最高权限运行
my cronjob.bat
中指定的所需controller/action
,或者等待它在指定时间触发
用于在后台运行
上述设置将打开命令提示符并运行任务。如果希望计划程序运行任务,则应查看此设置并相应更新任务设置。此外,您还可以将最后一行暂停
更改为退出
在将答案发布到这里之前,我已经测试了它,因为我家里有
Windows10
OS,所以如果不在office进行测试,就无法发布答案。您可以使用windows任务计划程序
- 如果创建扩展
的控制器类Yii\console\controller
,并添加TestController
操作,则创建一个Create
文件,该文件应包含运行Yii控制台应用程序的命令,要从Yii控制台应用程序运行该操作,您需要使用gitBash或console在项目根目录上键入.bat
,因此我们将通过提供Yii控制台引导文件/Yii test/create
的完整路径,将此命令添加到项目根目录/Yii
文件中。这是作为Yii控制器操作代码的一部分运行作业的主要内容.bat
.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
的完整路径
创建任务计划程序的步骤
- 在“开始”菜单中键入任务计划程序并将其打开
- 创建基本任务
- 为任务写一个名称
- 选择触发时间
每日
- 选择执行任务的时间
- 选择
启动程序操作
- 现在选择
文件,然后按Next并完成my cronjob.bat
- 现在转到任务管理器,选择
,右键单击刚刚创建的cronjob并打开属性。任务计划程序库