no message

This commit is contained in:
kuaifan 2025-04-19 21:33:10 +08:00
parent c55f64e209
commit ff0245840a
3 changed files with 88 additions and 92 deletions

View File

@ -242,11 +242,12 @@ class IndexController extends InvokeController
// App推送
Task::deliver(new AppPushTask());
// 删除过期的临时表数据
Task::deliver(new DeleteTmpTask('wg_tmp_msgs', 1));
Task::deliver(new DeleteTmpTask('task_worker', 12));
Task::deliver(new DeleteTmpTask('tmp_msgs', 1));
Task::deliver(new DeleteTmpTask('tmp'));
Task::deliver(new DeleteTmpTask('task_worker', 12));
Task::deliver(new DeleteTmpTask('file'));
Task::deliver(new DeleteTmpTask('tmp_file', 24));
Task::deliver(new DeleteTmpTask('user_device', 24));
// 删除机器人消息
Task::deliver(new DeleteBotMsgTask());
// 周期任务

View File

@ -237,27 +237,35 @@ class UserDevice extends AbstractModel
/**
* 忘记设备(删除)
* @param string|int|null $token
* - null 表示当前登录的设备
* @param UserDevice|string|int|null $token
* - UserDevice 表示指定的设备对象
* - string 表示指定的 token
* - int 表示指定的数据ID
* - null 表示当前登录的设备
* @return void
*/
public static function forget(string|int $token = null): void
public static function forget(UserDevice|string|int $token = null): void
{
if ($token instanceof UserDevice) {
$hash = $token->hash;
$token->delete();
} elseif (Base::isNumber($token)) {
$row = self::find(intval($token));
if ($row) {
$hash = $row->hash;
$row->delete();
}
} else {
if ($token === null) {
$token = Doo::userToken();
}
if (Base::isNumber($token)) {
$row = self::find(intval($token));
if ($row) {
Cache::forget(self::ck($row->hash));
$row->delete();
}
} elseif ($token) {
if ($token) {
$hash = md5($token);
Cache::forget(self::ck($hash));
self::whereHash($hash)->delete();
}
}
if (isset($hash)) {
Cache::forget(self::ck($hash));
}
}
}

View File

@ -5,6 +5,7 @@ namespace App\Tasks;
use App\Models\File;
use App\Models\TaskWorker;
use App\Models\Tmp;
use App\Models\UserDevice;
use App\Models\WebSocketTmpMsg;
use App\Module\Base;
use Carbon\Carbon;
@ -33,11 +34,7 @@ class DeleteTmpTask extends AbstractTask
public function start()
{
switch ($this->data) {
/**
* 表pre_tmp_msgs
*/
case 'wg_tmp_msgs':
{
case 'tmp_msgs':
WebSocketTmpMsg::where('created_at', '<', Carbon::now()->subHours($this->hours))
->orderBy('id')
->chunk(500, function ($msgs) {
@ -46,14 +43,9 @@ class DeleteTmpTask extends AbstractTask
$msg->delete();
}
});
}
break;
/**
* 表pre_tmp
*/
case 'tmp':
{
Tmp::where('created_at', '<', Carbon::now()->subHours($this->hours))
->orderBy('id')
->chunk(500, function ($tmps) {
@ -62,26 +54,16 @@ class DeleteTmpTask extends AbstractTask
$tmp->delete();
}
});
}
break;
/**
* 表pre_task_worker
*/
case 'task_worker':
{
TaskWorker::onlyTrashed()
->where('deleted_at', '<', Carbon::now()->subHours($this->hours))
->orderBy('id')
->forceDelete();
}
break;
/**
* 表pre_file
*/
case 'file':
{
$day = intval(env("AUTO_EMPTY_FILE_RECYCLE", 365));
if ($day <= 0) {
return;
@ -95,14 +77,9 @@ class DeleteTmpTask extends AbstractTask
$file->forceDeleteFile();
}
});
}
break;
/**
* tmp_file 删除临时文件
*/
case 'tmp_file':
{
$day = intval(env("AUTO_EMPTY_TEMP_FILE", 30));
if ($day <= 0) {
return;
@ -114,7 +91,17 @@ class DeleteTmpTask extends AbstractTask
unlink($file);
}
}
break;
case 'user_device':
UserDevice::where('expired_at', '<', Carbon::now()->subHours($this->hours))
->orderBy('id')
->chunk(500, function ($devices) {
/** @var UserDevice $device */
foreach ($devices as $device) {
UserDevice::forget($device);
}
});
break;
}
}