FloatTech / ZeroBot-Plugin

基于 ZeroBot 的 OneBot 插件
GNU Affero General Public License v3.0
2.48k stars 2.02k forks source link

签到功能崩溃问题 #122

Closed SakuraAzusa closed 2 years ago

SakuraAzusa commented 2 years ago

环境:Ubuntu 20.04 LTS 使用签到时占用会膨胀得很厉害(20M→200~400M内存占用) 由于服务器只有1h1r,服务器会直接满载 如果同时多人签到会高概率直接导致程序崩溃

time="2022-02-11T17:57:09+08:00" level=info msg="收到群(*****)消息 fk?↘ : 签到"

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:93) [2022-02-11 17:57:09] [1.05ms] SELECT * FROM "sign_in" WHERE (uid = 545813780 ) ORDER BY "sign_in"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:104) [2022-02-11 17:57:09] [0.45ms] SELECT * FROM "sign_in" WHERE "sign_in"."uid" = 545813780 AND ((uid = 545813780 )) ORDER BY "sign_in"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:110) [2022-02-11 17:57:09] [0.56ms] UPDATE "sign_in" SET "count" = 0, "updated_at" = '2022-02-11 17:57:09' WHERE (uid = 545813780 )
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:104) [2022-02-11 17:57:12] [1.28ms] SELECT * FROM "sign_in" WHERE "sign_in"."uid" = 545813780 AND ((uid = 545813780 )) ORDER BY "sign_in"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:110) [2022-02-11 17:57:12] [0.62ms] UPDATE "sign_in" SET "count" = 6, "updated_at" = '2022-02-11 17:57:12' WHERE (uid = 545813780 )
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:65) [2022-02-11 17:57:17] [32.33ms] SELECT * FROM "score" WHERE (uid = 545813780 ) ORDER BY "score"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:76) [2022-02-11 17:57:17] [0.85ms] SELECT * FROM "score" WHERE "score"."uid" = 545813780 AND ((uid = 545813780 )) ORDER BY "score"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:82) [2022-02-11 17:57:17] [2.59ms] UPDATE "score" SET "score" = 6 WHERE (uid = 545813780 )
[1 rows affected or returned ] time="2022-02-11T17:57:26+08:00" level=info msg="发送群消息(): [{\"type\":\"image\",\"data\":{\"file\":\"file:////root/zero/data/score/cache/54581378020220211signin.png\"}}] (id=-1107387172)" time="2022-02-11T17:57:45+08:00" level=info msg="收到群()消息 空と翼 : 签到"

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:93) [2022-02-11 17:57:45] [2.01ms] SELECT * FROM "sign_in" WHERE (uid = 1281009466 ) ORDER BY "sign_in"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:104) [2022-02-11 17:57:45] [0.30ms] SELECT * FROM "sign_in" WHERE "sign_in"."uid" = 1281009466 AND ((uid = 1281009466 )) ORDER BY "sign_in"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:110) [2022-02-11 17:57:45] [2.02ms] UPDATE "sign_in" SET "count" = 0, "updated_at" = '2022-02-11 17:57:45' WHERE (uid = 1281009466 )
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:104) [2022-02-11 17:57:52] [0.82ms] SELECT * FROM "sign_in" WHERE "sign_in"."uid" = 1281009466 AND ((uid = 1281009466 )) ORDER BY "sign_in"."uid" ASC LIMIT 1
[1 rows affected or returned ]

(github.com/FloatTech/ZeroBot-Plugin/plugin_score/model.go:110) [2022-02-11 17:57:52] [73.22ms] UPDATE "sign_in" SET "count" = 11, "updated_at" = '2022-02-11 17:57:52' WHERE (uid = 1281009466 )
[1 rows affected or returned ]

fumiama commented 2 years ago

这是签到时的正常内存占用,因为签到制图所用头图分辨率较高。考虑将其限制在某个分辨率以下。

fumiama commented 2 years ago

已经将分辨率限制在1280*720以内,可以试试最新版。

SakuraAzusa commented 2 years ago

现在多人签到没问题了,十分感谢,我用一段时间看看