perf: 优化签到消息

This commit is contained in:
kuaifan 2024-03-07 15:53:31 +08:00
parent 7464de3adc
commit 277115a30f
2 changed files with 13 additions and 9 deletions

View File

@ -5,6 +5,7 @@ namespace App\Models;
use App\Module\Base; use App\Module\Base;
use App\Module\Doo; use App\Module\Doo;
use App\Module\Extranet; use App\Module\Extranet;
use App\Tasks\JokeSoupTask;
use Cache; use Cache;
use Carbon\Carbon; use Carbon\Carbon;
@ -229,8 +230,8 @@ class UserBot extends AbstractModel
if ($checkins && $botUser = User::botGetOrCreate('check-in')) { if ($checkins && $botUser = User::botGetOrCreate('check-in')) {
$getJokeSoup = function($type) { $getJokeSoup = function($type) {
$pre = $type == "up" ? "每日开心:" : "心灵鸡汤:"; $pre = $type == "up" ? "每日开心:" : "心灵鸡汤:";
$key = $type == "up" ? "JokeSoupTask:jokes" : "JokeSoupTask:soups"; $key = $type == "up" ? "jokes" : "soups";
$array = Base::json2array(Cache::get($key)); $array = Base::json2array(Cache::get(JokeSoupTask::keyName($key)));
if ($array) { if ($array) {
$item = $array[array_rand($array)]; $item = $array[array_rand($array)];
if ($item) { if ($item) {

View File

@ -17,7 +17,10 @@ use Carbon\Carbon;
*/ */
class JokeSoupTask extends AbstractTask class JokeSoupTask extends AbstractTask
{ {
private $keyPrefix = "JokeSoupTask-v2"; public static function keyName($key)
{
return "JokeSoupTask-v2:{$key}";
}
public function __construct() public function __construct()
{ {
@ -27,24 +30,24 @@ class JokeSoupTask extends AbstractTask
public function start() public function start()
{ {
// 判断每分钟执行一次 // 判断每分钟执行一次
if (Cache::get("{$this->keyPrefix}:YmdHi") == date("YmdHi")) { if (Cache::get(self::keyName("YmdHi")) == date("YmdHi")) {
return; return;
} }
Cache::put("{$this->keyPrefix}:YmdHi", date("YmdHi"), Carbon::now()->addDay()); Cache::put(self::keyName("YmdHi"), date("YmdHi"), Carbon::now()->addDay());
// //
$array = Base::json2array(Cache::get("{$this->keyPrefix}:jokes")); $array = Base::json2array(Cache::get(self::keyName("jokes")));
$data = Extranet::randJoke(); $data = Extranet::randJoke();
if ($data) { if ($data) {
$array[] = $data; $array[] = $data;
} }
Cache::forever("{$this->keyPrefix}:jokes", Base::array2json(array_slice($array, -200))); Cache::forever(self::keyName("jokes"), Base::array2json(array_slice($array, -200)));
// //
$array = Base::json2array(Cache::get("{$this->keyPrefix}:soups")); $array = Base::json2array(Cache::get(self::keyName("soups")));
$data = Extranet::soups(); $data = Extranet::soups();
if ($data) { if ($data) {
$array[] = $data; $array[] = $data;
} }
Cache::forever("{$this->keyPrefix}:soups", Base::array2json(array_slice($array, -200))); Cache::forever(self::keyName("soups"), Base::array2json(array_slice($array, -200)));
} }
public function end() public function end()