laravel 运行 command / cron 在周日每 7 秒一次
laravel run command / cron every 7 seconds on sunday
所以我想完成一个命令,它在每个星期天运行一次,而且在那个星期天每 7 秒运行一次。
以下内容来自文档,但我不知道如何实现。谁能指引我正确的方向?
protected function schedule(Schedule $schedule)
{
$schedule->command('test:cron')
->everyMinute();
}
这将 运行 命令星期日每分钟:
protected function schedule(Schedule $schedule)
{
$schedule->command('test:cron')->cron('* * * * SUN');
}
检查一下here
PS:我不认为你可以使用 cron 来低于“每分钟”。
我相信你无法通过调度程序实现这一点 API。
但是,您可以像这样 运行 在星期日每分钟自定义 command/job :
protected function schedule(Schedule $schedule)
{
$schedule->job(new Job)
->sundays()
->everyMinutes();
}
然后在您的工作中,调用您需要的 CLI 命令 运行,休眠 7 秒并重复此过程 1 分钟。
最后,请务必查看有关 Jobs 的 Laravel 文档:https://laravel.com/docs/8.x/queues
例如,使用 symfony/process :
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Symfony\Component\Process\Process;
class RunCommand implements ShouldQueue, ShouldBeUnique
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct()
{
//
}
public function handle()
{
$process = new Process(['ls', '-lsa']);
for ($i = 1; $i < 8; $i++) {
// Run the command
$process->run();
// Pause the execution during 7 seconds
sleep(7);
}
}
}
所以我想完成一个命令,它在每个星期天运行一次,而且在那个星期天每 7 秒运行一次。
以下内容来自文档,但我不知道如何实现。谁能指引我正确的方向?
protected function schedule(Schedule $schedule)
{
$schedule->command('test:cron')
->everyMinute();
}
这将 运行 命令星期日每分钟:
protected function schedule(Schedule $schedule)
{
$schedule->command('test:cron')->cron('* * * * SUN');
}
检查一下here
PS:我不认为你可以使用 cron 来低于“每分钟”。
我相信你无法通过调度程序实现这一点 API。 但是,您可以像这样 运行 在星期日每分钟自定义 command/job :
protected function schedule(Schedule $schedule)
{
$schedule->job(new Job)
->sundays()
->everyMinutes();
}
然后在您的工作中,调用您需要的 CLI 命令 运行,休眠 7 秒并重复此过程 1 分钟。 最后,请务必查看有关 Jobs 的 Laravel 文档:https://laravel.com/docs/8.x/queues 例如,使用 symfony/process :
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Symfony\Component\Process\Process;
class RunCommand implements ShouldQueue, ShouldBeUnique
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct()
{
//
}
public function handle()
{
$process = new Process(['ls', '-lsa']);
for ($i = 1; $i < 8; $i++) {
// Run the command
$process->run();
// Pause the execution during 7 seconds
sleep(7);
}
}
}