我有一个这样的脚本:
$timeNow = new \DateTime(date("Y-m-d H:i:s"), new \DateTimeZone('UTC'));
$interval = new \DateInterval('PT'. Yii::$app->params['intervalMinForDescicionIssue'] .'M');
$timeCorrect = $timeNow->sub($interval);
$issues = Issue::find()
->where(['between', 'createdDate', $timeCorrect->format("Y-m-d H:i:s"), date("Y-m-d H:i:s")])
->all();
foreach ($issues as $issue) {
$issue->countMin++;
if($issue->countMin >= Yii::$app->params['intervalMinForIssuePrice']){
$issue->price++;
$issue->countMin = 0;
}
$issue->save();
如果要通过SiteController中的actionTest启动它,一切正常。 如果在basic / commands / CronController中每分钟都通过cron上的控制台运行,由于某种原因它会更新数据,而不是在表的所有行中,而是严格地在6行中。
我做错了什么?
答案 0 :(得分:0)
控制台控制器的行为与Web控制器的行为不同。问题是将cronjob的时间设置为一分钟。尝试将时间设置为5分钟,然后查看执行的行数。这个数字可能会增加
答案 1 :(得分:0)
您可以使用不同的配置(例如params / params-local)。