diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index dea8947d2..4a99e70e3 100755 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -258,6 +258,7 @@ class IndexController extends InvokeController Task::deliver(new DeleteTmpTask('file')); Task::deliver(new DeleteTmpTask('tmp_file', 24)); Task::deliver(new DeleteTmpTask('user_device', 24)); + Task::deliver(new DeleteTmpTask('umeng_log', 24 * 3)); // 删除机器人消息 Task::deliver(new DeleteBotMsgTask()); // 周期任务 diff --git a/app/Models/UmengAlias.php b/app/Models/UmengAlias.php index fddce90c9..7dd3cf376 100644 --- a/app/Models/UmengAlias.php +++ b/app/Models/UmengAlias.php @@ -70,6 +70,9 @@ class UmengAlias extends AbstractModel return; } + $instance = null; + $responsePayload = null; + try { switch ($first['platform']) { case 'ios': @@ -81,8 +84,11 @@ class UmengAlias extends AbstractModel default: return; } - $instance->send($first['data']); + $responsePayload = $instance->send($first['data']); } catch (\Exception $e) { + $responsePayload = [ + 'error' => $e->getMessage(), + ]; $first['retry'] = intval($first['retry'] ?? 0) + 1; if ($first['retry'] > 3) { info("[PushMsg] fail: " . $e->getMessage()); @@ -91,6 +97,12 @@ class UmengAlias extends AbstractModel self::$waitSend[] = $first; } } finally { + if ($instance !== null) { + UmengLog::create([ + 'request' => Base::array2json($first['data']), + 'response' => Base::array2json($responsePayload), + ]); + } self::sendTask(); } } diff --git a/app/Models/UmengLog.php b/app/Models/UmengLog.php new file mode 100644 index 000000000..2cb9f903b --- /dev/null +++ b/app/Models/UmengLog.php @@ -0,0 +1,32 @@ +subHours($this->hours)) + ->orderBy('id') + ->chunk(500, function ($logs) { + /** @var UmengLog $log */ + foreach ($logs as $log) { + $log->delete(); + } + }); + break; } } diff --git a/database/migrations/2025_11_01_095600_create_umeng_logs_table.php b/database/migrations/2025_11_01_095600_create_umeng_logs_table.php new file mode 100644 index 000000000..6e2d71ff9 --- /dev/null +++ b/database/migrations/2025_11_01_095600_create_umeng_logs_table.php @@ -0,0 +1,23 @@ +id(); + $table->text('request')->nullable()->comment('请求参数'); + $table->text('response')->nullable()->comment('推送返回'); + $table->timestamps(); + }); + } + + public function down(): void + { + Schema::dropIfExists('umeng_logs'); + } +};