Skip to content

正しく記録できなかったplayLogの自動削除 #1421

@ikura-hamu

Description

@ikura-hamu

説明

ランチャーから何らかの原因でplayLogの終了のリクエストが送られず、ずっとプレイ中ということになってしまうことがある。今は DELETE /editions/{editionID}/games/{gameID}/plays/{playLogID} からadminだけが削除できるようになっているが、これだとDBの中身を覗いてidを取得してリクエストを送る、という手間がかかって間違うリスクがある方法になってしまっている。

定期的(1時間おきくらい?)にplayLogのテーブルを確認して、あまりにプレイ時間が長くなってしまっている(4時間とか?)ものがあったらそれを削除するようにしたい。

注意点

物理削除をしてしまうと、本当に長く遊んでいたときに来た終了リクエストが正しく処理されなくなってしまうので、論理削除にして、リクエストが来たときには復活するようにしたい。Gormの機能としてdeleted_atカラムがnullかどうかみたいな感じで使えるので、それを使う。

定期実行に関する処理は、schedule みたいなパッケージを作って、そこからserviceのコードを呼ぶ。普通のAPIのhandlerがscheduleに置き換わった感じ。名前は要検討。

この機能が実装できたら、DELETE /editions/{editionID}/games/{gameID}/plays/{playLogID} はdeprecatedにしてしまってもいい。

その他

No response

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions