traP-jp / traQ-gazer

MIT License
0 stars 6 forks source link

再起動時に遅れていない分すべてを送れるようにする #107

Closed Luftalian closed 1 month ago

Luftalian commented 1 year ago

一旦アプリを停止してしまうと、再起動するまでの間にtraQに投稿された投稿はDMとして通知を送ることができない。

Luftalian commented 1 year ago

解決案:新しいテーブルを作る

oribe1115 commented 1 year ago

どういうデータを持つテーブルを考えていますか?

Luftalian commented 1 year ago
テーブル名:time last_time
DATETIME
2001-01-14 08:45

これで、UPDATE time SET last_time = NOW() こうすることを考えています。

Luftalian commented 1 year ago

https://github.com/traP-jp/h23s_15/blob/c5e7b68decd35f30ebb95d6c741c9f89a967fad8/server/traqmessage/collect.go#L82

そして、ここのfrom time.Timeにいれます。

Luftalian commented 1 year ago

searchに出てくるまでの時間を考えるともう少し考える必要がありそうです

Luftalian commented 1 year ago
テーブル名:lastest last_message last_time
VARCHAR(36) DATETIME
** 2001-01-14 08:45

時間でなんとなくとって、正確には最後に投稿したもの以降のものを取るのはどうでしょう?

oribe1115 commented 1 year ago

新しくsearchのクエリを飛ばす時は最後の時間よりちょっと前の時刻で検索をかけて、実際に最後に通知を飛ばしたメッセージまではフィルターで落とす感じかな? last_messageのところをtraQのmessage idに、last_timeは実行した時刻ではなく取得した中の最新メッセージの時刻にしたらいい感じになりそうです

Pugma commented 1 month ago

133 で解決できたので close