我有一个 Controller 方法,我想每分钟运行一次。我读了 documentation用于任务调度,但它似乎只记录命令。
有什么方法可以让我每分钟调用一个路由/ Controller 方法/脚本吗?
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Acc;
class ScriptController extends Controller
{
public function updateAcc()
{
$c = new Scripts\AccountA();
$xoo = $c->getInfo();
$z = json_decode($xoo,true);
$data= new Acc();
$data->price = $z["result"];
$data->save();
}
}
我需要使用DB facades 和外部类 等...
最佳答案
是的,正如文档所述,您可以调用任何函数。因此,您可以执行以下操作:
$schedule->call(function () {
$controller = new \App\Http\Controllers\ScriptController();
$controller->UpdateAcc();
})->everyMinute();
但是,从其 Web 上下文调用 Controller 是非常糟糕的做法,您应该创建一个 facade 或一个作业来执行您想要的代码。
https://stackoverflow.com/questions/46075200/