Yii2-使用Scheduler在Windows上运行Console应用程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2-使用Scheduler在Windows上运行Console应用程序相关的知识,希望对你有一定的参考价值。
我正在研究yii2
。我有一个创建功能,我想在每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,
]);
}
}
同样在这个函数中,我将从web-API
获取一些记录。但我主要担心的是每24小时后在后台运行上述功能。
更新1
根据建议,我在consolecontroller
创建了一个控制器
namespace consolecontrollers;
use yiiconsoleController;
class TestController extends Controller {
public function actionIndex() {
echo "cron service runnning";
}}
现在,为了测试它我遵循这个link并使用cmd
创建了一个运行服务,其中包含以下参数
现在,按照建议我按照每个步骤进行操作。 .bat
文件包含
@Echo off
title My Cron Job
:: See title at the top
php E:xampphtdocsinventory-webyii test
pause
保存文件并将其添加到任务计划程序后。我试图从这个界面运行它。我确实看到一个cmd打开并显示消息。
我该怎么做?任何帮助将受到高度赞赏。
您可以使用Windows的任务计划程序
- 创建一个
.bat
文件,其中应包含运行Yii控制台应用程序controller/action
的命令,如果您创建扩展TestController
并添加yiiconsolecontroller
操作的控制器类create
,从Yii控制台应用程序运行该操作,您将使用gitBash在项目根目录中键入./yii test/create
或控制台,所以我们将这个命令添加到.bat
文件,提供project_root/yii
的完整路径,这是Yii控制台引导程序文件。这是作为Yii控制器动作代码的一部分运行作业的主要内容。
打开记事本并复制下面的代码并保存为qazxsw poi,名称为qazxsw poi
.bat
注意:确保你在my-cronjob.bat
中有@Echo off
title My Cron Job
:: See title at the top
php F:xampphtdocsmy-projectyii test/create
pause
,或者你应该在上面的php
文件中提供Windows Path Variable
的完整路径
Steps to create a Task Scheduler
- 在开始菜单中键入Task Scheduler并将其打开。
- 创建一个基本任务
php.exe
- 为任务写一个名字
.bat
- 选择执行任务的时间
Daily
- 现在选择
Action
文件,然后按Next和Finish
- 现在转到任务管理器并选择
my-cronjob.bat
并右键单击刚刚创建的cronjob并打开属性。
注意:如果用户已登录,您可以选择运行cronjob,默认情况下,只有在用户登录后才能运行,您可以更改该选项。
现在,您可以通过右键单击并选择运行来手动运行任务,它将运行Run with highest privileges
中指定的所需或等待它在指定时间触发。
For running in the background
以上设置将打开命令提示符并运行任务,如果您希望调度程序最小化运行任务,您应该看到此controller/action
并相应地更新任务设置。此外,您也可以将最后一行my-cronjob.bat
更改为link
。
我在发布答案之前测试了它,因为我家里有pause
操作系统,因此无法在办公室测试后发布答案。
在我看来,你正在寻找一个Exit
。
您必须创建一个控制台cronjob,然后将其添加到服务器上的crontab。上面的链接有一个关于如何为Yii2设置的wiki。
每天下午3点运行的示例crontab:
Windows10
以上是关于Yii2-使用Scheduler在Windows上运行Console应用程序的主要内容,如果未能解决你的问题,请参考以下文章