针对任务调度频率的更改?

此处任务调度频率是有可能发生变化的,比如更改为 150 分钟统计一次,那么将频率写死在 app/Models/Traist/ActiveUserHelper.phpapp/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.' * * *');
}
...
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

感觉这个影响不大

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!