gpt4 book ai didi

php - 在不同的日期每 N 分钟安排一次作业

转载 作者:行者123 更新时间:2023-12-04 01:47:21 26 4
gpt4 key购买 nike

我必须在特定时间运行一个 cronjob:

第一个:工作日 9:00 - 18:00 每 2 分钟一类

第二个:周六 10:00 - 18:00 每 2 分钟一类

我能得到的最远的是:

$schedule->call(function () {
(new SendSMS())->run();
})->weekdays()->between('9:00', '18:00');

我不知道如何添加 everyTwoMinutes 约束,因为我只找到了这些方法:

->everyMinute();    
->everyFiveMinutes();
->everyTenMinutes();
->everyThirtyMinutes();

第二个问题是,对于第二种情况,我不想添加另一个这样的时间表:

$schedule->call(function () {
(new SendSMS())->run();
})->saturdays()->between('11:00', '18:00');

我想写一个匹配两次的,可能吗?

最佳答案

已更新:这将按所需的时间间隔运行。

    $schedule->call(function () {
$datetime = date('Y-m-d H:i:s');
echo $datetime;
})->everyMinute()->when(function() {

$now = new \DateTime();

# don't run on Sundays
if ($now->format('l') == 'Sunday') {
return false;
}

# run every two minutes
if ($now->format('i')%2 == 1) {
return false;
}

if ($now->format('l') == 'Saturday') {
$start_date = new \DateTime('today 10:00');
$end_date = new \DateTime('today 18:00');
return ($start_date <= $now && $now < $end_date);
} else {
$start_date = new \DateTime('today 09:00');
$end_date = new \DateTime('today 18:00');
return ($start_date <= $now && $now < $end_date);
}
});

关于php - 在不同的日期每 N 分钟安排一次作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com