针对任务调度频率的更改?
此处任务调度频率是有可能发生变化的,比如更改为 150 分钟统计一次,那么将频率写死在 app/Models/Traist/ActiveUserHelper.php 和 app/Console/Kernel.php 里,而且更改频率时还要涉及多个文件,这样是不是不太好?
我的想法是把以 分钟 为单位的频率抽出来放到配置文件 config/larabbs.php 里,
<?php
return [
'active_users_census_frequency_in_minutes' => 60,
];
对应的:
app/Models/Traist/ActiveUserHelper.php
...
protected $cache_expire_in_minutes;
//从配置文件中获取 $cacheExpireInMinutes 值
private function getCacheExpireInMinutes() {
$this->cacheExpireInMinutes = config('larabbs.active_users_census_frequency_in_minutes') + 5;
}
//统计并缓存活跃用户
public function censusAndCacheActiveUsers() {
$this->getCacheExpireInMinutes(); //获取 $cacheExpireInMinutes 值
$activeUsers = $this->censusActiveUsers(); //取得活跃用户集合
$this->cacheActiveUsers($activeUsers); //活跃用户存入缓存
}
...
app/Console/Kernel.php
...
protected function schedule(Schedule $schedule) {
$frequency = config('larabbs.active_users_census_frequency_in_minutes');
$schedule->command('larabbs:census-active-users')->cron('* /'.$frequency.' * * *');
}
...
推荐文章: