Compare commits

..

148 Commits

Author SHA1 Message Date
Xinwei Xiong
e6c90d4ea1 Merge pull request #2129 from cubxxw/automated-cherry-pick-of-#2128-upstream-release-v3.6
releasev3.6: Automated cherry pick of #2128 upstream release v3.6
2024-03-20 12:06:52 +08:00
Xinwei Xiong
8530692a53 Update env-template.yaml 2024-03-20 08:30:55 +08:00
Xinwei Xiong
7f8ff8ff2e Merge pull request #2126 from skiffer-git/release-v3.6
The check script is not compatible with Mac.
2024-03-19 20:26:25 +08:00
Xinwei Xiong
a7e97d8905 Merge pull request #2123 from cubxxw/automated-cherry-pick-of-#2069-upstream-release-v3.6
fix: fix docker file images proxy
2024-03-19 18:28:33 +08:00
Xinwei Xiong
f0ca2e6fda Merge pull request #2122 from cubxxw/automated-cherry-pick-of-#2113-upstream-release-v3.6
feat: remove tools/codescan catalog
2024-03-19 18:27:59 +08:00
Xinwei Xiong
57f6638b11 Merge pull request #2124 from cubxxw/automated-cherry-pick-of-#2068-#2114-upstream-release-v3.6
feat: add scripts verify shell check
2024-03-19 18:27:22 +08:00
honlyc
58fc7c0a80 fix: Fix the callback after reading the group message 2024-03-19 17:35:52 +08:00
Xinwei Xiong (cubxxw)
a816e76f16 feat: add scripts verify shell check 2024-03-19 17:35:51 +08:00
Xinwei Xiong (cubxxw)
59811ad196 fix: fix docker file images proxy 2024-03-19 17:27:28 +08:00
Xinwei Xiong (cubxxw)
59b7324d6c fix: fix docker file images proxy 2024-03-19 17:27:28 +08:00
Xinwei Xiong (cubxxw)
a6a70dc22e feat: add code language detector github actions 2024-03-19 17:23:43 +08:00
Xinwei Xiong (cubxxw)
d948e6603c feat: remove tools/codescan catalog 2024-03-19 17:23:43 +08:00
skiffer-git
66dd9f6e09 scripts for Mac 2024-03-19 17:05:24 +08:00
skiffer-git
0e61c3acef scripts for Mac 2024-03-19 17:03:51 +08:00
skiffer-git
e81803a53d scripts for Mac 2024-03-19 17:02:48 +08:00
skiffer-git
a338731fe9 scripts for Mac 2024-03-19 17:02:47 +08:00
skiffer-git
a64f6d108a scripts for Mac 2024-03-19 17:02:45 +08:00
skiffer-git
825416bbba scripts for Mac 2024-03-19 17:02:35 +08:00
skiffer-git
6e2132d217 scripts for Mac 2024-03-19 17:02:27 +08:00
skiffer-git
27ad975359 scripts for Mac 2024-03-19 17:02:26 +08:00
skiffer-git
b1a7439516 scripts for Mac 2024-03-19 17:02:25 +08:00
Xinwei Xiong
24b9dca935 Merge pull request #2091 from withchao/release-v3.6
fix: conversation crash caused by non-existence
2024-03-18 10:51:39 +08:00
withchao
27e62c9cd0 fix: getConversationInfo 2024-03-13 16:28:18 +08:00
Xinwei Xiong
d6d151d8f5 Merge pull request #2083 from FGadvancer/release-v3.6-sendMessage
optimization: message remove options.
2024-03-13 14:13:56 +08:00
Gordon
ae3dcacd79 optimization: message remove options. 2024-03-13 12:12:08 +08:00
skiffer-git
1921e4416f Fix bug docker start log (#2066)
* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* Bug: component check  (#2053)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>

* Bug: component check  (#2056)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

* Exit with code 1 when the check script fails (#2023)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status. (#2031)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* Fix bug Remove duplicate function definitions (#2034)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Feature: delete log for update images  (#2050)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* Fix bug delete data conversion (#2059)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

* Exit with code 1 when the check script fails (#2023)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status. (#2031)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* Fix bug Remove duplicate function definitions (#2034)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Feature: delete log for update images  (#2050)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* Bug: component check  (#2054)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* delete data conversion tool

* delete data conversion tool

* delete data conversion tool

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* Fix bug redis address (#2063)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

* Exit with code 1 when the check script fails (#2023)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status. (#2031)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* Fix bug Remove duplicate function definitions (#2034)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Feature: delete log for update images  (#2050)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* redis address port error

* change go proxy

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* Run in the background

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>
2024-03-09 15:23:54 +08:00
skiffer-git
e85d699f5f Fix bug redis address (#2062)
* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* Bug: component check  (#2053)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* Bug: component check  (#2056)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

* Exit with code 1 when the check script fails (#2023)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status. (#2031)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* Fix bug Remove duplicate function definitions (#2034)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Feature: delete log for update images  (#2050)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* Fix bug delete data conversion (#2059)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

* Exit with code 1 when the check script fails (#2023)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status. (#2031)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* Fix bug Remove duplicate function definitions (#2034)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Feature: delete log for update images  (#2050)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* Bug: component check  (#2054)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* delete data conversion tool

* delete data conversion tool

* delete data conversion tool

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* redis address port error

* change go proxy

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>
2024-03-09 13:52:00 +08:00
skiffer-git
dd7e2e3a74 Fix bug delete data conversion (#2060)
* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* Bug: component check  (#2053)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* Bug: component check  (#2056)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

* Exit with code 1 when the check script fails (#2023)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status. (#2031)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* Fix bug Remove duplicate function definitions (#2034)

* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Feature: delete log for update images  (#2050)

* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* Delete Data Conversion Tool

* delete data conversion tool

* delete data conversion tool

* delete data conversion tool

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
Co-authored-by: withchao <993506633@qq.com>
Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>
2024-03-09 12:57:02 +08:00
skiffer-git
7730f60943 Bug: component check (#2054)
* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* test

Signed-off-by: unknown <44203734@qq.com>

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

* fix bug: component check

---------

Signed-off-by: unknown <44203734@qq.com>
Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
2024-03-09 00:30:02 +08:00
skiffer-git
a938e03def Feature: delete log for update images (#2050)
* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* Fix bug Remove duplicate function definitions (#2033)

* delete

* delete log

* Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2044)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

* delete log (#2047)

* delete log

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
2024-03-08 20:48:03 +08:00
skiffer-git
51fb4737cf Fix bug configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr (#2045)
* Error not handled (#2040)

* delete

* add context deadline exceeded

* Error not handled

* Error not handled

* Error not handled

* Error not handled

* feat: add local cache for high frequency reads (#2036)

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* feat: msg local cache

* fix: mongo

* fix: mongo

* fix: mongo

* openim.yaml

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* localcache

* local cache

* local cache

* local cache

* local cache

* fix: GroupApplicationAcceptedNotification

* fix: GroupApplicationAcceptedNotification

* fix: NotificationUserInfoUpdate

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: cache add single-flight and timing-wheel.

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* feat: msg rpc local cache

* refactor: refactor the code of push and optimization.

* cicd: robot automated Change

* refactor: rename cache.

* merge

* fix: refactor project dir avoid import cycle.

* update tools

* merge

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* feat: conversation FindRecvMsgNotNotifyUserIDs

* merge

* merge the latest main

---------

Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>

* configGetEnv failed,err:string to int failed: strconv.Atoi: parsing "openim_v3": invalid syntaxr

---------

Co-authored-by: chao <48119764+withchao@users.noreply.github.com>
Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
Co-authored-by: withchao <withchao@users.noreply.github.com>
2024-03-08 17:23:32 +08:00
skiffer-git
e5cf56bf0f Fix bug Remove duplicate function definitions (#2034)
* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* delete

* delete log
2024-03-08 16:32:33 +08:00
chao
3c24a9be15 Merge pull request #2037 from withchao/localcache36
feat: add local cache for high frequency reads
2024-03-08 16:30:44 +08:00
skiffer-git
a6ac0b990e Merge branch 'release-v3.6' into localcache36 2024-03-08 16:30:27 +08:00
chao
fc94eed98b Merge pull request #2041 from skiffer-git/fix-bug-2039-3.6
Error not handled
2024-03-08 16:19:20 +08:00
skiffer-git
ed45f6f860 Merge branch 'release-v3.6' into fix-bug-2039-3.6 2024-03-08 16:11:27 +08:00
skiffer-git
caed25252d Error not handled 2024-03-08 16:03:59 +08:00
skiffer-git
54f13e74ff Error not handled 2024-03-08 15:58:03 +08:00
skiffer-git
37947623e3 Error not handled 2024-03-08 15:56:54 +08:00
skiffer-git
210936411d Error not handled 2024-03-08 15:45:03 +08:00
skiffer-git
a3fff86ed8 add context deadline exceeded 2024-03-08 15:27:26 +08:00
withchao
9f67a41189 Merge remote-tracking branch 'upstream/release-v3.6' into localcache36
# Conflicts:
#	scripts/install/openim-tools.sh
2024-03-08 15:23:00 +08:00
skiffer-git
ae78ea479e Merge remote-tracking branch 'upstream/main' 2024-03-08 15:19:08 +08:00
withchao
87d8a1dbb7 Merge remote-tracking branch 'origin/main' into localcache 2024-03-08 15:06:50 +08:00
chao
34c7f22ba8 Merge branch 'openimsdk:main' into main 2024-03-08 15:02:31 +08:00
skiffer-git
eabe4d53da delete 2024-03-08 14:56:44 +08:00
skiffer-git
a5341346e9 Log redirection causes incorrect program exit status. (#2031)
* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* cicd: bump League Patch (#2025)

* Execute after the component check succeeds   && minio.Enable is not configured to use MinIO (#2026)

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* Log redirection causes incorrect program exit status.

---------

Co-authored-by: OpenIM Bot <124379614+kubbot@users.noreply.github.com>
2024-03-08 14:10:57 +08:00
skiffer-git
5282ab9f36 Execute after the component check succeeds && minio.Enable is not configured to use MinIO (#2027)
* Exit with code 1 when the check script fails (#2022)

* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Exit with code 1 when the check script fails

* Handle the return value of pre-start

* Handle the return value of pre-start

* Handle the return value of pre-start

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked

* minio.Enable is not configured to use MinIO, therefore the image server is not checked
2024-03-08 12:11:07 +08:00
skiffer-git
bd31f6b49c Exit with code 1 when the check script fails (#2023)
* Optimize script logs

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Optimizing Docker Log Output Detection

* Exit with code 1 when the check script fails
2024-03-08 09:03:54 +08:00
withchao
d4ed448d7d merge the latest main 2024-03-07 18:00:58 +08:00
withchao
76d8253aeb Merge branch 'main' into localcache
# Conflicts:
#	go.mod
#	go.sum
#	internal/msggateway/hub_server.go
#	internal/push/consumer_init.go
#	internal/push/offlinepush/fcm/push.go
#	internal/push/offlinepush/getui/push.go
#	internal/push/offlinepush/jpush/push.go
#	internal/push/push_handler.go
#	internal/push/push_rpc_server.go
#	internal/push/push_to_client.go
#	internal/rpc/friend/friend.go
#	internal/rpc/msg/server.go
#	internal/rpc/msg/verify.go
#	pkg/common/config/config.go
#	pkg/common/db/cache/conversation.go
#	pkg/common/db/cache/meta_cache.go
#	pkg/common/db/cache/msg.go
#	pkg/common/db/localcache/conversation.go
#	pkg/common/db/localcache/group.go
#	pkg/rpcclient/conversation.go
#	pkg/rpcclient/group.go
2024-03-07 11:59:53 +08:00
chao
c2009ceff6 Merge branch 'openimsdk:main' into main 2024-03-07 10:18:40 +08:00
chao
39a6141787 Merge branch 'openimsdk:main' into main 2024-03-06 19:23:48 +08:00
chao
6a05e64f3f Merge branch 'openimsdk:main' into main 2024-02-20 10:04:50 +08:00
chao
d91cde90ef Merge branch 'openimsdk:main' into main 2024-02-05 17:02:33 +08:00
withchao
90370557e3 merge 2024-01-31 16:43:41 +08:00
withchao
d89c17bcf0 Merge branch 'main' into localcache
# Conflicts:
#	internal/push/push_to_client.go
2024-01-31 16:43:15 +08:00
chao
1964a4b3fd Merge branch 'openimsdk:main' into main 2024-01-31 16:41:16 +08:00
withchao
c40de0b12e feat: conversation FindRecvMsgNotNotifyUserIDs 2024-01-28 17:34:51 +08:00
withchao
31f28a54ab feat: conversation FindRecvMsgNotNotifyUserIDs 2024-01-28 17:29:46 +08:00
withchao
86737c9004 Merge branch 'main' into localcache
# Conflicts:
#	go.mod
#	go.sum
#	internal/push/push_to_client.go
2024-01-28 16:43:09 +08:00
chao
86d3a668fd Merge branch 'openimsdk:main' into main 2024-01-28 16:36:03 +08:00
withchao
16a9dfba27 feat: conversation FindRecvMsgNotNotifyUserIDs 2024-01-28 16:33:09 +08:00
withchao
24a0479761 merge 2024-01-26 15:21:28 +08:00
withchao
b2ca1366f8 Merge branch 'main' into localcache
# Conflicts:
#	go.mod
#	go.sum
#	internal/push/push_to_client.go
2024-01-26 15:21:06 +08:00
withchao
1a14191d66 Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	go.sum
2024-01-26 15:18:19 +08:00
Gordon
9d313cb308 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-23 16:18:27 +08:00
Gordon
38e11dc678 fix: refactor project dir avoid import cycle. 2024-01-23 16:18:00 +08:00
withchao
b940bcaafe merge 2024-01-23 16:03:22 +08:00
withchao
efa74a95a7 Merge branch 'main' into localcache
# Conflicts:
#	go.mod
#	go.sum
#	internal/push/push_rpc_server.go
#	internal/push/push_to_client.go
2024-01-23 16:02:53 +08:00
Gordon
119a2c2247 refactor: rename cache. 2024-01-22 21:14:21 +08:00
withchao
4266fed44f cicd: robot automated Change 2024-01-22 03:13:27 +00:00
chao
c81e199698 Merge branch 'openimsdk:main' into main 2024-01-22 11:11:32 +08:00
Gordon
9660556f35 refactor: refactor the code of push and optimization. 2024-01-21 20:47:07 +08:00
Gordon
c7067bc48a Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-21 20:41:28 +08:00
withchao
84f97a72f4 update tools 2024-01-23 22:07:29 +00:00
Gordon
5a81a7a560 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-19 09:49:01 +08:00
withchao
0ee68e57b9 feat: msg rpc local cache 2024-01-18 15:42:57 +08:00
withchao
59529718bb Merge remote-tracking branch 'origin/main' into localcache
# Conflicts:
#	go.mod
#	tools/component/component.go
2024-01-18 15:34:55 +08:00
chao
e3d78de887 Merge branch 'openimsdk:main' into main 2024-01-18 15:30:48 +08:00
withchao
e3ff304394 feat: msg rpc local cache 2024-01-18 15:09:27 +08:00
withchao
899f1f15a4 feat: msg rpc local cache 2024-01-18 15:06:07 +08:00
Gordon
33094ec532 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-18 13:19:51 +08:00
withchao
e26a582836 feat: msg rpc local cache 2024-01-17 17:33:54 +08:00
withchao
77894b104e feat: msg rpc local cache 2024-01-17 17:26:46 +08:00
withchao
c16f17582a feat: msg rpc local cache 2024-01-17 16:37:26 +08:00
Gordon
445db67568 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-16 18:16:46 +08:00
Gordon
30ef247a59 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-16 17:52:42 +08:00
withchao
025eb44113 feat: local cache 2024-01-16 17:52:33 +08:00
withchao
af5e191144 feat: local cache 2024-01-16 17:46:28 +08:00
withchao
4a042489bf feat: local cache 2024-01-16 17:19:29 +08:00
withchao
9e4a7d082d feat: local cache 2024-01-16 17:01:38 +08:00
Gordon
000f6ce595 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-16 16:49:34 +08:00
withchao
f53dd855aa feat: local cache 2024-01-16 16:42:47 +08:00
withchao
f1506e40c4 feat: local cache 2024-01-16 15:53:00 +08:00
Gordon
b9eb642616 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-16 15:22:01 +08:00
withchao
1c93f87e95 feat: local cache 2024-01-16 15:13:49 +08:00
Gordon
b2eae0999c Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-16 11:21:29 +08:00
withchao
1afdd0bcf7 feat: local cache 2024-01-16 11:15:28 +08:00
chao
45859d9cab Merge branch 'openimsdk:main' into main 2024-01-16 10:58:43 +08:00
withchao
d26a1b2090 feat: local cache 2024-01-16 10:20:57 +08:00
Gordon
1e81d29e86 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-15 19:46:37 +08:00
withchao
6e1f96a720 feat: local cache 2024-01-15 17:08:02 +08:00
withchao
656bfef069 feat: local cache 2024-01-15 16:48:21 +08:00
withchao
1db6e3b389 feat: local cache 2024-01-15 16:33:25 +08:00
withchao
32221da613 feat: local cache 2024-01-15 16:27:02 +08:00
withchao
ad5e4e1540 feat: local cache 2024-01-15 16:02:34 +08:00
withchao
c9193302a8 feat: local cache 2024-01-15 15:53:40 +08:00
Gordon
640c363eee Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-15 15:50:40 +08:00
withchao
abbb701192 feat: local cache 2024-01-15 15:23:42 +08:00
Gordon
b87e366d74 Merge remote-tracking branch 'origin/localcache' into localcache 2024-01-15 12:09:47 +08:00
withchao
3e30e50a09 feat: local cache 2024-01-15 11:42:18 +08:00
Gordon
41d2c7be7a Merge remote-tracking branch 'origin/localcache' into localcache
# Conflicts:
#	pkg/common/localcache/cache.go
2024-01-15 10:55:05 +08:00
Gordon
166d51ab23 feat: cache add single-flight and timing-wheel. 2024-01-15 10:54:15 +08:00
withchao
749eb11830 feat: local cache 2024-01-12 18:23:15 +08:00
withchao
a81bc3fc23 feat: local cache 2024-01-12 17:51:01 +08:00
withchao
9908e2c658 Merge remote-tracking branch 'origin/localcache' into localcache
# Conflicts:
#	pkg/common/localcache/cache.go
#	pkg/common/localcache/option.go
2024-01-12 16:11:26 +08:00
withchao
45064ae5ca feat: local cache 2024-01-12 15:41:05 +08:00
Gordon
1f1ab65375 feat: cache add single-flight and timing-wheel. 2024-01-12 13:27:54 +08:00
withchao
48ff03f854 fix: NotificationUserInfoUpdate 2024-01-12 11:01:28 +08:00
withchao
a00d77a705 fix: GroupApplicationAcceptedNotification 2024-01-11 16:33:50 +08:00
chao
ad979d493d Merge branch 'openimsdk:main' into main 2024-01-11 14:32:46 +08:00
withchao
f5f2cf4746 Merge remote-tracking branch 'origin/main' 2024-01-11 11:20:20 +08:00
withchao
4c3c4555a3 fix: GroupApplicationAcceptedNotification 2024-01-11 11:18:52 +08:00
withchao
006e4a1e93 local cache 2024-01-10 16:24:46 +08:00
withchao
8ff8861603 local cache 2024-01-10 16:13:55 +08:00
withchao
2d21ab3aeb local cache 2024-01-10 16:03:49 +08:00
withchao
a84ad774f7 local cache 2024-01-10 15:27:24 +08:00
withchao
ee9c9eb97c localcache 2024-01-10 15:16:30 +08:00
withchao
da2c0d11f5 localcache 2024-01-10 15:06:12 +08:00
withchao
7a67beb7a1 localcache 2024-01-10 14:38:04 +08:00
withchao
28292be37d localcache 2024-01-10 12:09:25 +08:00
withchao
1ea5fe04f1 localcache 2024-01-10 12:08:15 +08:00
withchao
c16cd0bf7c localcache 2024-01-10 12:01:55 +08:00
withchao
03e15766ab localcache 2024-01-10 11:57:46 +08:00
withchao
f0e5c587ad localcache 2024-01-10 11:46:27 +08:00
withchao
b0ec48d35d localcache 2024-01-10 11:41:57 +08:00
withchao
8360c72300 openim.yaml 2024-01-10 11:12:52 +08:00
withchao
18ad656087 Merge remote-tracking branch 'origin/main' into localcache 2024-01-10 11:05:34 +08:00
withchao
22c00c411e fix: mongo 2024-01-10 10:32:18 +08:00
withchao
f0075265d5 fix: mongo 2024-01-10 10:18:05 +08:00
withchao
86aebfc0bd fix: mongo 2024-01-09 17:36:24 +08:00
withchao
bbb5ef5ccc feat: msg local cache 2024-01-09 17:01:50 +08:00
withchao
0248fbb47d feat: msg local cache 2024-01-08 20:38:23 +08:00
withchao
938622b1fe feat: msg local cache 2024-01-08 20:36:41 +08:00
withchao
3d77c1c8cf feat: msg local cache 2024-01-08 16:47:39 +08:00
withchao
1ae523dcc2 feat: msg local cache 2024-01-08 15:41:57 +08:00
withchao
d9921248a7 feat: msg local cache 2024-01-08 15:39:39 +08:00
65 changed files with 153 additions and 1373 deletions

7
.github/code-language-detector.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
directory: ./
file_types:
- .go
- .yaml
- .yml
languages:
- Chinese

View File

@@ -0,0 +1,13 @@
name: Language Check Workflow Test
on: [pull_request]
jobs:
comment-language-detector:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Code Language Detector
uses: kubecub/comment-lang-detector@v1.0.0

View File

@@ -143,7 +143,7 @@ KAFKA_LATESTMSG_REDIS_TOPIC=${KAFKA_LATESTMSG_REDIS_TOPIC}
# MINIO_PORT
# ----------
# MINIO_PORT sets the port for the MinIO object storage service.
# Upon changing this port, the MinIO endpoint URLs in the `config/config.yaml` file must be updated
# Upon changing this port, the MinIO endpoint URLs in the config/config.yaml file must be updated
# to reflect this change. The endpoints include both the 'endpoint' and 'signEndpoint'
# under the MinIO configuration.
#

View File

@@ -2,8 +2,6 @@
**PATH:** `scripts/lib/logging.sh`
### Introduction
OpenIM, an intricate project, requires a robust logging mechanism to diagnose issues, maintain system health, and provide insights. A custom-built logging system embedded within OpenIM ensures consistent and structured logs. Let's delve into the design of this logging system and understand its various functions and their usage scenarios.

View File

@@ -266,61 +266,13 @@ errors.New("redis connection failed")
- When specifying ranges of numbers, use inclusive ranges whenever possible.
- Go 1.13 or above is recommended, and the error generation method is `fmt.Errorf("module xxx: %w", err)`.
### 1.4 Panic Processing
The use of `panic` should be carefully controlled in Go applications to ensure program stability and predictable error handling. Following are revised guidelines emphasizing the restriction on using `panic` and promoting alternative strategies for error handling and program termination.
- **Prohibited in Business Logic:** Using `panic` within business logic processing is strictly prohibited. Business logic should handle errors gracefully and use error returns to propagate issues up the call stack.
- **Restricted Use in Main Package:** In the main package, the use of `panic` should be reserved for situations where the program is entirely inoperable, such as failure to open essential files, inability to connect to the database, or other critical startup issues. Even in these scenarios, prefer using structured error handling to terminate the program.
- **Use `log.Fatal` for Critical Errors:** Instead of panicking, use `log.Fatal` to log critical errors that prevent the program from operating normally. This approach allows the program to terminate while ensuring the error is properly logged for troubleshooting.
- **Prohibition on Exportable Interfaces:** Exportable interfaces must not invoke `panic`. They should handle errors gracefully and return errors as part of their contract.
- **Prefer Errors Over Panic:** It is recommended to use error returns instead of panic to convey errors within a package. This approach promotes error handling that integrates smoothly with Go's error handling idioms.
#### Alternative to Panic: Structured Program Termination
To enforce these guidelines, consider implementing structured functions to terminate the program gracefully in the face of unrecoverable errors, while providing clear error messages. Here are two recommended functions:
```go
// ExitWithError logs an error message and exits the program with a non-zero status.
func ExitWithError(err error) {
progName := filepath.Base(os.Args[0])
fmt.Fprintf(os.Stderr, "%s exit -1: %+v\n", progName, err)
os.Exit(-1)
}
// SIGTERMExit logs a warning message when the program receives a SIGTERM signal and exits with status 0.
func SIGTERMExit() {
progName := filepath.Base(os.Args[0])
fmt.Fprintf(os.Stderr, "Warning %s receive process terminal SIGTERM exit 0\n", progName)
}
```
#### Example Usage:
```go
import (
_ "net/http/pprof"
"github.com/openimsdk/open-im-server/v3/pkg/common/cmd"
util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil"
)
func main() {
apiCmd := cmd.NewApiCmd()
apiCmd.AddPortFlag()
apiCmd.AddPrometheusPortFlag()
if err := apiCmd.Execute(); err != nil {
util.ExitWithError(err)
}
}
```
In this example, `ExitWithError` is used to terminate the program when an unrecoverable error occurs, providing a clear error message to stderr and exiting with a non-zero status. This approach ensures that critical errors are logged and the program exits in a controlled manner, facilitating troubleshooting and maintaining the stability of the application.
### 1.4 panic processing
- Panic is prohibited in business logic processing.
- In the main package, panic is only used when the program is completely inoperable, for example, the file cannot be opened, the database cannot be connected, and the program cannot run normally.
- In the main package, use `log.Fatal` to record errors, so that the program can be terminated by the log, or the exception thrown by the panic can be recorded in the log file, which is convenient for troubleshooting.
- An exportable interface must not panic.
- It is recommended to use error instead of panic to convey errors in the package.
### 1.5 Unit Tests
@@ -487,15 +439,10 @@ var allowGitHook bool
- Local variables should be as short as possible, for example, use buf to refer to buffer, and use i to refer to index.
- The code automatically generated by the code generation tool can exclude this rule (such as the Id in `xxx.pb.go`)
### 2.7 Constant Naming
### 2.7 Constant naming
In Go, constants play a critical role in defining values that do not change throughout the execution of a program. Adhering to best practices in naming constants can significantly improve the readability and maintainability of your code. Here are some guidelines for constant naming:
- **Camel Case Naming:** The name of a constant must follow the camel case notation. The initial letter should be uppercase or lowercase based on the access control requirements. Uppercase indicates that the constant is exported (visible outside the package), while lowercase indicates package-private visibility (visible only within its own package).
- **Enumeration Type Constants:** For constants that represent a set of enumerated values, it's recommended to define a corresponding type first. This approach not only enhances type safety but also improves code readability by clearly indicating the purpose of the enumeration.
**Example:**
- The constant name must follow the camel case, and the initial letter is uppercase or lowercase according to the access control decision.
- If it is a constant of enumeration type, you need to create the corresponding type first:
```go
// Code defines an error code type.
@@ -505,40 +452,11 @@ type Code int
const (
// ErrUnknown - 0: An unknown error occurred.
ErrUnknown Code = iota
// ErrFatal - 1: A fatal error occurred.
// ErrFatal - 1: An fatal error occurred.
ErrFatal
)
```
In the example above, `Code` is defined as a new type based on `int`. The enumerated constants `ErrUnknown` and `ErrFatal` are then defined with explicit comments to indicate their purpose and values. This pattern is particularly useful for grouping related constants and providing additional context.
### Global Variables and Constants Across Packages
- **Use Constants for Global Variables:** When defining variables that are intended to be accessed across packages, prefer using constants to ensure immutability. This practice avoids unintended modifications to the value, which can lead to unpredictable behavior or hard-to-track bugs.
- **Lowercase for Package-Private Usage:** If a global variable or constant is intended for use only within its own package, it should start with a lowercase letter. This clearly signals its limited scope of visibility, adhering to Go's access control mechanism based on naming conventions.
**Guideline:**
- For global constants that need to be accessed across packages, declare them with an uppercase initial letter. This makes them exported, adhering to Go's visibility rules.
- For constants used within the same package, start their names with a lowercase letter to limit their scope to the package.
**Example:**
```go
package config
// MaxConnections - the maximum number of allowed connections. Visible across packages.
const MaxConnections int = 100
// minIdleTime - the minimum idle time before a connection is considered stale. Only visible within the config package.
const minIdleTime int = 30
```
In this example, `MaxConnections` is a global constant meant to be accessed across packages, hence it starts with an uppercase letter. On the other hand, `minIdleTime` is intended for use only within the `config` package, so it starts with a lowercase letter.
Following these guidelines ensures that your Go code is more readable, maintainable, and consistent with Go's design philosophy and access control mechanisms.
### 2.8 Error naming
- The Error type should be written in the form of FooError.
@@ -555,190 +473,6 @@ type ExitError struct {
var ErrFormat = errors. New("unknown format")
```
For non-standard Err naming, CICD will report an error
### 2.9 Handling Errors Properly
In Go, proper error handling is crucial for creating reliable and maintainable applications. It's important to ensure that errors are not ignored or discarded, as this can lead to unpredictable behavior and difficult-to-debug issues. Here are the guidelines and examples regarding the proper handling of errors.
#### Guideline: Do Not Discard Errors
- **Mandatory Error Propagation:** When calling a function that returns an error, the calling function must handle or propagate the error, instead of ignoring it. This approach ensures that errors are not silently ignored, allowing higher-level logic to make informed decisions about error handling.
#### Incorrect Example: Discarding an Error
```go
package main
import (
"io/ioutil"
"log"
)
func ReadFileContent(filename string) string {
content, _ := ioutil.ReadFile(filename) // Incorrect: Error is ignored
return string(content)
}
func main() {
content := ReadFileContent("example.txt")
log.Println(content)
}
```
In this incorrect example, the error returned by `ioutil.ReadFile` is ignored. This can lead to situations where the program continues execution even if the file doesn't exist or cannot be accessed, potentially causing more cryptic errors downstream.
#### Correct Example: Propagating an Error
```go
package main
import (
"io/ioutil"
"log"
)
// ReadFileContent attempts to read and return the content of the specified file.
// It returns an error if reading fails.
func ReadFileContent(filename string) (string, error) {
content, err := ioutil.ReadFile(filename)
if err != nil {
// Correct: Propagate the error
return "", err
}
return string(content), nil
}
func main() {
content, err := ReadFileContent("example.txt")
if err != nil {
log.Fatalf("Failed to read file: %v", err)
}
log.Println(content)
}
```
In the correct example, the error returned by `ioutil.ReadFile` is propagated back to the caller. The `main` function then checks the error and terminates the program with an appropriate error message if an error occurred. This approach ensures that errors are handled appropriately, and the program does not proceed with invalid state.
### Best Practices for Error Handling
1. **Always check the error returned by a function.** Do not ignore it.
2. **Propagate errors up the call stack unless they can be handled gracefully at the current level.**
3. **Provide context for errors when propagating them, making it easier to trace the source of the error.** This can be achieved using `fmt.Errorf` with the `%w` verb or dedicated wrapping functions provided by some error handling packages.
4. **Log the error at the point where it is handled or makes the program to terminate, to provide insight into the failure.**
By following these guidelines, you ensure that your Go applications handle errors in a consistent and effective manner, improving their reliability and maintainability.
### 2.10 Using Context with IO or Inter-Process Communication (IPC)
In Go, `context.Context` is a powerful construct for managing deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes. It is particularly important in I/O operations or inter-process communication (IPC), where operations might need to be cancelled or timed out.
#### Guideline: Use Context for IO and IPC
- **Mandatory Use of Context:** When performing I/O operations or inter-process communication, it's crucial to use `context.Context` to manage the lifecycle of these operations. This includes setting deadlines, handling cancellation signals, and passing request-scoped values.
#### Incorrect Example: Ignoring Context in an HTTP Call
```go
package main
import (
"io/ioutil"
"net/http"
"log"
)
// FetchData makes an HTTP GET request to the specified URL and returns the response body.
// This function does not use context, making it impossible to cancel the request or set a deadline.
func FetchData(url string) (string, error) {
resp, err := http.Get(url) // Incorrect: Ignoring context
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
return string(body), nil
}
func main() {
data, err := FetchData("http://example.com")
if err != nil {
log.Fatalf("Failed to fetch data: %v", err)
}
log.Println(data)
}
```
In this incorrect example, the `FetchData` function makes an HTTP GET request without using a `context`. This approach does not allow the request to be cancelled or a timeout to be set, potentially leading to resources being wasted if the server takes too long to respond or if the operation needs to be aborted for any reason.
#### Correct Example: Using Context in an HTTP Call
```go
package main
import (
"context"
"io/ioutil"
"net/http"
"log"
"time"
)
// FetchDataWithContext makes an HTTP GET request to the specified URL using the provided context.
// This allows the request to be cancelled or timed out according to the context's deadline.
func FetchDataWithContext(ctx context.Context, url string) (string, error) {
req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
if err != nil {
return "", err
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
return string(body), nil
}
func main() {
// Create a context with a 5-second timeout
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
data, err := FetchDataWithContext(ctx, "http://example.com")
if err != nil {
log.Fatalf("Failed to fetch data: %v", err)
}
log.Println(data)
}
```
In the correct example, `FetchDataWithContext` uses a context to make the HTTP GET request. This allows the operation to be cancelled or subjected to a timeout, as dictated by the context passed to it. The `context.WithTimeout` function is used in `main` to create a context that cancels the request if it takes longer than 5 seconds, demonstrating a practical use of context to manage operation lifecycle.
### Best Practices for Using Context
1. **Pass context as the first parameter of a function**, following the convention `func(ctx context.Context, ...)`.
2. **Never ignore the context** provided to you in functions that support it. Always use it in your I/O or IPC operations.
3. **Avoid storing context in a struct**. Contexts are meant to be passed around within the call stack, not stored.
4. **Use context's cancellation and deadline features** to control the lifecycle of blocking operations, especially in network I/O and IPC scenarios.
5. **Propagate context down the call stack** to any function that supports it, ensuring that your application can respond to cancellation signals and deadlines effectively.
By adhering to these guidelines and examples, you can ensure that your Go applications handle I/O and IPC operations more reliably and efficiently, with proper support for cancellation, timeouts, and request-scoped values.
## 3. Comment specification
- Each exportable name must have a comment, which briefly introduces the exported variables, functions, structures, interfaces, etc.

View File

@@ -1,386 +1,20 @@
# OpenIM Logging and Error Handling Documentation
## Script Logging Documentation Link
If you wish to view the script's logging documentation, you can click on this link: [Logging Documentation](https://github.com/OpenIMSDK/Open-IM-Server/blob/main/docs/contrib/bash-log.md).
Below is the documentation for logging and error handling in the OpenIM Go project.
To create a standard set of documentation that is quick to read and easy to understand, we will highlight key information about the `Logger` interface and the `CodeError` interface. This includes the purpose of each interface, key methods, and their use cases. This will help developers quickly grasp how to effectively use logging and error handling within the project.
## Logging (`Logger` Interface)
### Purpose
The `Logger` interface aims to provide the OpenIM project with a unified and flexible logging mechanism, supporting structured logging formats for efficient log management and analysis.
### Key Methods
- **Debug, Info, Warn, Error**
Log messages of different levels to suit various logging needs and scenarios. These methods accept a context (`context.Context`), a message (`string`), and key-value pairs (`...interface{}`), allowing the log to carry rich context information.
- **WithValues**
Append key-value pair information to log messages, returning a new `Logger` instance. This helps in adding consistent context information.
- **WithName**
Set the name of the logger, which helps in identifying the source of the logs.
- **WithCallDepth**
Adjust the call stack depth to accurately identify the source of the log message.
### Use Cases
- Developers should choose the appropriate logging level (such as `Debug`, `Info`, `Warn`, `Error`) based on the importance of the information when logging.
- Use `WithValues` and `WithName` to add richer context information to logs, facilitating subsequent tracking and analysis.
## Error Handling (`CodeError` Interface)
### Purpose
The `CodeError` interface is designed to provide a unified mechanism for error handling and wrapping, making error information more detailed and manageable.
### Key Methods
- **Code**
Return the error code to distinguish between different types of errors.
- **Msg**
Return the error message description to display to the user.
- **Detail**
Return detailed information about the error for further debugging by developers.
- **WithDetail**
Add detailed information to the error, returning a new `CodeError` instance.
- **Is**
Determine whether the current error matches a specified error, supporting a flexible error comparison mechanism.
- **Wrap**
Wrap another error with additional message description, facilitating the tracing of the error's cause.
### Use Cases
- When defining errors with specific codes and messages, use error types that implement the `CodeError` interface.
- Use `WithDetail` to add additional context information to errors for more accurate problem localization.
- Use the `Is` method to judge the type of error for conditional branching.
- Use the `Wrap` method to wrap underlying errors while adding more contextual descriptions.
## Logging Standards and Code Examples
In the OpenIM project, we use the unified logging package `github.com/OpenIMSDK/tools/log` for logging to achieve efficient log management and analysis. This logging package supports structured logging formats, making it easier for developers to handle log information.
### Logger Interface and Implementation
The logger interface is defined as follows:
```go
type Logger interface {
Debug(ctx context.Context, msg string, keysAndValues ...interface{})
Info(ctx context.Context, msg string, keysAndValues ...interface{})
Warn(ctx context.Context, msg string, err error, keysAndValues ...interface{})
Error(ctx context.Context, msg string, err error, keysAndValues ...interface{})
WithValues(keysAndValues ...interface{}) Logger
WithName(name string) Logger
WithCallDepth(depth int) Logger
}
```
Example code: Using the `Logger` interface to log at the info level.
```go
func main() {
logger := log.NewLogger().WithName("MyService")
ctx := context.Background()
logger.Info(ctx, "Service started", "port", "8080")
}
```
## Error Handling and Code Examples
We use the `github.com/OpenIMSDK/tools/errs` package for unified error handling and wrapping.
### CodeError Interface and Implementation
The error interface is defined as follows:
```go
type CodeError interface {
Code() int
Msg() string
Detail() string
WithDetail(detail string) CodeError
Is(err error, loose ...bool) bool
Wrap(msg ...string) error
error
}
```
Example code: Creating and using the `CodeError` interface to handle errors.
```go
package main
import (
"fmt"
"github.com/OpenIMSDK/tools/errs"
)
func main() {
err := errs.New(404, "Resource not found")
err = err.WithDetail("
More details")
if e, ok := err.(errs.CodeError); ok {
fmt.Println(e.Code(), e.Msg(), e.Detail())
}
}
```
### Detailed Logging Standards and Code Examples
1. **Print key information at startup**
It is crucial to print entry parameters and key process information at program startup. This helps understand the startup state and configuration of the program.
**Code Example**:
```go
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Program startup, version: 1.0.0")
fmt.Printf("Connecting to database: %s\n", os.Getenv("DATABASE_URL"))
}
```
2. **Use `tools/log` and `fmt` for logging**
Logging should be done using a specialized logging library for unified management and formatted log output.
**Code Example**: Logging an info level message with `tools/log`.
```go
package main
import (
"context"
"github.com/OpenIMSDK/tools/log"
)
func main() {
ctx := context.Background()
log.Info(ctx, "Application started successfully")
}
```
3. **Use standard error output for startup failures or critical information**
Critical error messages or program startup failures should be indicated to the user through standard error output.
**Code Example**:
```go
package main
import (
"fmt"
"os"
)
func checkEnvironment() bool {
return os.Getenv("REQUIRED_ENV") != ""
}
func main() {
if !checkEnvironment() {
fmt.Fprintln(os.Stderr, "Missing required environment variable")
os.Exit(1)
}
}
```
We encapsulate it into separate tools, which can output error information through the `tools/log` package.
```go
package main
import (
util "github.com/openimsdk/open-im-server/v3/pkg/util/genutil"
)
func main() {
if err := apiCmd.Execute(); err != nil {
util.ExitWithError(err)
}
}
```
4. **Use `tools/log` package for runtime logging**
This ensures consistency and control over logging.
**Code Example**: Same as the above example using `tools/log`. When `tools/log` is not initialized, consider using `fmt` for standard output.
5. **Error logs should be printed by the top-level caller**
This is to avoid duplicate logging of errors, typically errors are caught and logged at the application's outermost level.
**Code Example**:
```go
package main
import (
"github.com/OpenIMSDK/tools/log"
"context"
)
func doSomething() error {
// An error occurs here
return errs.Wrap(errors.New("An error occurred"))
}
func controller() error {
err := doSomething()
if err != nil {
return err
}
return nil
}
func main() {
err := controller()
if err != nil {
log.Error(context.Background(), "Operation failed", err)
}
}
```
6. **Handling logs for API RPC calls and non-RPC applications**
For API RPC calls using gRPC, logs at the information level are printed by middleware on the gRPC server side, reducing the need to manually log in each RPC method. For non-RPC applications, it's recommended to manually log key execution paths to track the application's execution flow.
**gRPC Server-Side Logging Middleware:**
In gRPC, `UnaryInterceptor` and `StreamInterceptor` can intercept Unary and Stream type RPC calls, respectively. Here's an example of how to implement a simple Unary RPC logging middleware:
```go
package main
import (
"context"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"log"
"time"
)
// unaryServerInterceptor returns a new unary server interceptor that logs each request.
func unaryServerInterceptor() grpc.UnaryServerInterceptor {
return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
// Record the start time of the request
start := time.Now()
// Call the actual RPC method
resp, err = handler(ctx, req)
// After the request ends, log the duration and other information
log.Printf("Request method: %s, duration: %s, error status: %v", info.FullMethod, time.Since(start), status.Code(err))
return resp, err
}
}
func main() {
// Create a gRPC server and add the middleware
s := grpc.NewServer
(grpc.UnaryInterceptor(unaryServerInterceptor()))
// Register your service
// Start the gRPC server
log.Println("Starting gRPC server...")
// ...
}
```
**Logging for Non-RPC Applications:**
For non-RPC applications, the key is to log at appropriate places in the code to maintain an execution trace. Here's a simple example showing how to log when handling a task:
```go
package main
import (
"log"
)
func processTask(taskID string) {
// Log the start of task processing
log.Printf("Starting task processing: %s", taskID)
// Suppose this is where the task is processed
// Log after the task is completed
log.Printf("Task processing completed: %s", taskID)
}
func main() {
// Example task ID
taskID := "task123"
processTask(taskID)
}
```
In both scenarios, appropriate logging can help developers and operators monitor the health of the system, trace the source of issues, and quickly locate and resolve problems. For gRPC logging, using middleware can effectively centralize log management and control. For non-RPC applications, ensuring logs are placed at critical execution points can help understand the program's operational flow and state changes.
### When to Wrap Errors?
1. **Wrap errors generated within the function**
When an error occurs within a function, use `errs.Wrap` to add context information to the original error.
**Code Example**:
```go
func doSomething() error {
// Suppose an error occurs here
err, _ := someFunc()
if err != nil {
return errs.Wrap(err, "doSomething failed")
}
}
```
2. **Wrap errors from system calls or other packages**
When calling external libraries or system functions that return errors, also add context information to wrap the error.
**Code Example**:
```go
func readConfig(file string) error {
_, err := os.ReadFile(file)
if err != nil {
return errs.Wrap(err, "Failed to read config file")
}
return nil
}
```
3. **No need to re-wrap errors for internal module calls**
If an error has been appropriately wrapped with sufficient context information in an internal module call, there's no need to wrap it again.
**Code Example**:
```go
func doSomething() error {
err := doAnotherThing()
if err != nil {
return err
}
return nil
}
```
4. **Ensure comprehensive wrapping of errors with detailed messages**
When wrapping errors, ensure to provide ample context information to make the error more understandable and easier to debug.
**Code Example**:
```go
func connectDatabase() error {
err := db.Connect(config.DatabaseURL)
if err != nil {
return errs.Wrap(err, fmt.Sprintf("Failed to connect to database, URL: %s", config.DatabaseURL))
}
return nil
}
```
## Log Standards
### Log Standards
- The unified log package `github.com/openimsdk/open-im-server/internal/pkg/log` should be used for all logging;
- Use structured logging formats: `log.Infow`, `log.Warnw`, `log.Errorw`, etc. For example: `log.Infow("Update post function called")`;
- All logs should start with an uppercase letter and should not end with a `.`. For example: `log.Infow("Update post function called")`;
- Use past tense. For example, use `Could not delete B` instead of `Cannot delete B`;
- Adhere to log level standards:
- Debug level logs use `log.Debugw`;
- Info level logs use `log.Infow`;
- Warning level logs use `log.Warnw`;
- Error level logs use `log.Errorw`;
- Panic level logs use `log.Panicw`;
- Fatal level logs use `log.Fatalw`.
- Log settings:
- Development and test environments: The log level is set to `debug`, the log format can be set to `console` / `json` as needed, and caller is enabled;
- Production environment: The log level is set to `info`, the log format is set to `json`, and caller is enabled. (**Note**: In the early stages of going online, to facilitate troubleshooting, the log level can be set to `debug`)
- When logging, avoid outputting sensitive information, such as passwords, keys, etc.
- If you are calling a logging function in a function/method with a `context.Context` parameter, it is recommended to use `log.L(ctx).Infow()` for logging.

4
go.mod
View File

@@ -4,7 +4,7 @@ go 1.19
require (
firebase.google.com/go v3.13.0+incompatible
github.com/OpenIMSDK/protocol v0.0.56
github.com/OpenIMSDK/protocol v0.0.55
github.com/OpenIMSDK/tools v0.0.37
github.com/bwmarrin/snowflake v0.3.0 // indirect
github.com/dtm-labs/rockscache v0.1.1
@@ -28,7 +28,7 @@ require (
golang.org/x/image v0.15.0
google.golang.org/api v0.165.0
google.golang.org/grpc v1.61.0
google.golang.org/protobuf v1.33.0
google.golang.org/protobuf v1.32.0
gopkg.in/yaml.v3 v3.0.1
)

8
go.sum
View File

@@ -18,8 +18,8 @@ firebase.google.com/go v3.13.0+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIw
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/IBM/sarama v1.42.2 h1:VoY4hVIZ+WQJ8G9KNY/SQlWguBQXQ9uvFPOnrcu8hEw=
github.com/IBM/sarama v1.42.2/go.mod h1:FLPGUGwYqEs62hq2bVG6Io2+5n+pS6s/WOXVKWSLFtE=
github.com/OpenIMSDK/protocol v0.0.56 h1:mbVFyDBachEsmJLfYW5AU1z2KL8AUEpoHG8RPCIxjgg=
github.com/OpenIMSDK/protocol v0.0.56/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y=
github.com/OpenIMSDK/protocol v0.0.55 h1:eBjg8DyuhxGmuCUjpoZjg6MJJJXU/xJ3xJwFhrn34yA=
github.com/OpenIMSDK/protocol v0.0.55/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y=
github.com/OpenIMSDK/tools v0.0.37 h1:qvDqmA4RbEJtPjZouWCkVuf/pjm6Y8nUrG5iH2gcnOg=
github.com/OpenIMSDK/tools v0.0.37/go.mod h1:wBfR5CYmEyvxl03QJbTkhz1CluK6J4/lX0lviu8JAjE=
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
@@ -514,8 +514,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

View File

@@ -3,7 +3,6 @@ go 1.19
use (
.
./test/typecheck
./tools/codescan
./tools/changelog
./tools/component
./tools/formitychecker

View File

@@ -50,6 +50,7 @@ import (
)
func Start(config *config.GlobalConfig, port int, proPort int) error {
log.ZDebug(context.Background(), "configAPI1111111111111111111", config, "port", port, "javafdasfs")
if port == 0 || proPort == 0 {
err := "port or proPort is empty:" + strconv.Itoa(port) + "," + strconv.Itoa(proPort)
return errs.Wrap(fmt.Errorf(err))

View File

@@ -16,6 +16,7 @@ package push
import (
"context"
"github.com/openimsdk/open-im-server/v3/pkg/rpccache"
"github.com/OpenIMSDK/protocol/constant"
pbpush "github.com/OpenIMSDK/protocol/push"
@@ -25,7 +26,6 @@ import (
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/cache"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/controller"
"github.com/openimsdk/open-im-server/v3/pkg/rpccache"
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
"google.golang.org/grpc"
)

View File

@@ -18,6 +18,7 @@ import (
"context"
"encoding/json"
"errors"
"github.com/openimsdk/open-im-server/v3/pkg/rpccache"
"sync"
"github.com/OpenIMSDK/protocol/constant"
@@ -38,7 +39,6 @@ import (
"github.com/openimsdk/open-im-server/v3/pkg/common/db/controller"
"github.com/openimsdk/open-im-server/v3/pkg/common/prommetrics"
"github.com/openimsdk/open-im-server/v3/pkg/msgprocessor"
"github.com/openimsdk/open-im-server/v3/pkg/rpccache"
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
"golang.org/x/sync/errgroup"
"google.golang.org/grpc"

View File

@@ -506,19 +506,27 @@ func (c *conversationServer) getConversationInfo(
switch chatLog.SessionType {
case constant.SingleChatType:
if chatLog.SendID == userID {
msgInfo.FaceURL = sendMap[chatLog.RecvID].FaceURL
msgInfo.SenderName = sendMap[chatLog.RecvID].Nickname
if recv, ok := sendMap[chatLog.RecvID]; ok {
msgInfo.FaceURL = recv.FaceURL
msgInfo.SenderName = recv.Nickname
}
break
}
msgInfo.FaceURL = sendMap[chatLog.SendID].FaceURL
msgInfo.SenderName = sendMap[chatLog.SendID].Nickname
if send, ok := sendMap[chatLog.SendID]; ok {
msgInfo.FaceURL = send.FaceURL
msgInfo.SenderName = send.Nickname
}
case constant.GroupChatType, constant.SuperGroupChatType:
msgInfo.GroupName = groupMap[chatLog.GroupID].GroupName
msgInfo.GroupFaceURL = groupMap[chatLog.GroupID].FaceURL
msgInfo.GroupMemberCount = groupMap[chatLog.GroupID].MemberCount
msgInfo.GroupID = chatLog.GroupID
msgInfo.GroupType = groupMap[chatLog.GroupID].GroupType
msgInfo.SenderName = sendMap[chatLog.SendID].Nickname
if group, ok := groupMap[chatLog.GroupID]; ok {
msgInfo.GroupName = group.GroupName
msgInfo.GroupFaceURL = group.FaceURL
msgInfo.GroupMemberCount = group.MemberCount
msgInfo.GroupType = group.GroupType
}
if send, ok := sendMap[chatLog.SendID]; ok {
msgInfo.SenderName = send.Nickname
}
}
pbchatLog.ConversationID = conversationID
msgInfo.LatestMsgRecvTime = chatLog.SendTime
@@ -528,10 +536,7 @@ func (c *conversationServer) getConversationInfo(
return conversationMsg, nil
}
func (c *conversationServer) GetConversationNotReceiveMessageUserIDs(
ctx context.Context,
req *pbconversation.GetConversationNotReceiveMessageUserIDsReq,
) (*pbconversation.GetConversationNotReceiveMessageUserIDsResp, error) {
func (c *conversationServer) GetConversationNotReceiveMessageUserIDs(ctx context.Context, req *pbconversation.GetConversationNotReceiveMessageUserIDsReq) (*pbconversation.GetConversationNotReceiveMessageUserIDsResp, error) {
userIDs, err := c.conversationDatabase.GetConversationNotReceiveMessageUserIDs(ctx, req.ConversationID)
if err != nil {
return nil, err

View File

@@ -16,26 +16,31 @@ package friend
import (
"context"
"github.com/OpenIMSDK/tools/tx"
"github.com/OpenIMSDK/protocol/sdkws"
"github.com/openimsdk/open-im-server/v3/pkg/authverify"
"github.com/OpenIMSDK/tools/log"
"github.com/openimsdk/open-im-server/v3/pkg/common/convert"
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
"google.golang.org/grpc"
"github.com/OpenIMSDK/protocol/constant"
pbfriend "github.com/OpenIMSDK/protocol/friend"
"github.com/OpenIMSDK/protocol/sdkws"
registry "github.com/OpenIMSDK/tools/discoveryregistry"
"github.com/OpenIMSDK/tools/errs"
"github.com/OpenIMSDK/tools/log"
"github.com/OpenIMSDK/tools/tx"
"github.com/OpenIMSDK/tools/utils"
"github.com/openimsdk/open-im-server/v3/pkg/authverify"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"github.com/openimsdk/open-im-server/v3/pkg/common/convert"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/cache"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/controller"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/mgo"
tablerelation "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/unrelation"
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient/notification"
"google.golang.org/grpc"
)
type friendServer struct {

View File

@@ -1068,7 +1068,6 @@ func (s *groupServer) GetGroups(ctx context.Context, req *pbgroup.GetGroupsReq)
group []*relationtb.GroupModel
err error
)
if req.GroupID != "" {
group, err = s.db.FindGroup(ctx, []string{req.GroupID})
resp.Total = uint32(len(group))
@@ -1081,7 +1080,15 @@ func (s *groupServer) GetGroups(ctx context.Context, req *pbgroup.GetGroupsReq)
return nil, err
}
groupIDs := utils.Slice(group, func(e *relationtb.GroupModel) string {
var groups []*relationtb.GroupModel
for _, v := range group {
if v.Status == constant.GroupStatusDismissed {
resp.Total--
continue
}
groups = append(groups, v)
}
groupIDs := utils.Slice(groups, func(e *relationtb.GroupModel) string {
return e.GroupID
})
ownerMembers, err := s.db.FindGroupsOwner(ctx, groupIDs)
@@ -1095,7 +1102,7 @@ func (s *groupServer) GetGroups(ctx context.Context, req *pbgroup.GetGroupsReq)
if err != nil {
return nil, err
}
resp.Groups = utils.Slice(group, func(group *relationtb.GroupModel) *pbgroup.CMSGroup {
resp.Groups = utils.Slice(groups, func(group *relationtb.GroupModel) *pbgroup.CMSGroup {
var (
userID string
username string

View File

@@ -156,27 +156,27 @@ func callbackMsgModify(ctx context.Context, globalConfig *config.GlobalConfig, m
return nil
}
func CallbackGroupMsgRead(ctx context.Context, globalConfig *config.GlobalConfig, req *cbapi.CallbackGroupMsgReadReq) error {
if !globalConfig.Callback.CallbackGroupMsgRead.Enable || req.ContentType != constant.Text {
if !globalConfig.Callback.CallbackGroupMsgRead.Enable {
return nil
}
req.CallbackCommand = cbapi.CallbackGroupMsgReadCommand
resp := &cbapi.CallbackGroupMsgReadResp{}
if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackMsgModify); err != nil {
if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackGroupMsgRead); err != nil {
return err
}
return nil
}
func CallbackSingleMsgRead(ctx context.Context, globalConfig *config.GlobalConfig, req *cbapi.CallbackSingleMsgReadReq) error {
if !globalConfig.Callback.CallbackSingleMsgRead.Enable || req.ContentType != constant.Text {
if !globalConfig.Callback.CallbackSingleMsgRead.Enable {
return nil
}
req.CallbackCommand = cbapi.CallbackSingleMsgRead
resp := &cbapi.CallbackSingleMsgReadResp{}
if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackMsgModify); err != nil {
if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackSingleMsgRead); err != nil {
return err
}
return nil

View File

@@ -15,6 +15,8 @@
package msg
import (
"github.com/openimsdk/open-im-server/v3/pkg/rpccache"
"github.com/OpenIMSDK/protocol/constant"
"github.com/OpenIMSDK/protocol/conversation"
"github.com/OpenIMSDK/protocol/msg"
@@ -23,7 +25,6 @@ import (
"github.com/openimsdk/open-im-server/v3/pkg/common/db/cache"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/controller"
"github.com/openimsdk/open-im-server/v3/pkg/common/db/unrelation"
"github.com/openimsdk/open-im-server/v3/pkg/rpccache"
"github.com/openimsdk/open-im-server/v3/pkg/rpcclient"
"google.golang.org/grpc"
)

View File

@@ -131,7 +131,7 @@ func (m *msgServer) SearchMessage(ctx context.Context, req *msg.SearchMessageReq
sendIDs = append(sendIDs, chatLog.SendID)
}
switch chatLog.SessionType {
case constant.SingleChatType, constant.NotificationChatType:
case constant.SingleChatType:
recvIDs = append(recvIDs, chatLog.RecvID)
case constant.GroupChatType, constant.SuperGroupChatType:
groupIDs = append(groupIDs, chatLog.GroupID)
@@ -173,7 +173,7 @@ func (m *msgServer) SearchMessage(ctx context.Context, req *msg.SearchMessageReq
pbchatLog.SenderNickname = sendMap[chatLog.SendID]
}
switch chatLog.SessionType {
case constant.SingleChatType, constant.NotificationChatType:
case constant.SingleChatType:
pbchatLog.RecvNickname = recvMap[chatLog.RecvID]
case constant.GroupChatType, constant.SuperGroupChatType:

View File

@@ -16,6 +16,7 @@ package msg
import (
"context"
"github.com/OpenIMSDK/tools/log"
"math/rand"
"strconv"
"time"
@@ -24,7 +25,6 @@ import (
"github.com/OpenIMSDK/protocol/msg"
"github.com/OpenIMSDK/protocol/sdkws"
"github.com/OpenIMSDK/tools/errs"
"github.com/OpenIMSDK/tools/log"
"github.com/OpenIMSDK/tools/utils"
)

View File

@@ -133,13 +133,6 @@ func (t *thirdServer) SearchLogs(ctx context.Context, req *third.SearchLogsReq)
if req.StartTime > req.EndTime {
return nil, errs.ErrArgs.Wrap("startTime>endTime")
}
if req.StartTime == 0 && req.EndTime == 0 {
t := time.Date(2019, time.January, 1, 0, 0, 0, 0, time.UTC)
timestampMills := t.UnixNano() / int64(time.Millisecond)
req.StartTime = timestampMills
req.EndTime = time.Now().UnixNano() / int64(time.Millisecond)
}
total, logs, err := t.thirdDatabase.SearchLogs(ctx, req.Keyword, time.UnixMilli(req.StartTime), time.UnixMilli(req.EndTime), req.Pagination)
if err != nil {
return nil, err

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cachekey
const (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cachekey
const (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cachekey
const (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cachekey
import (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cachekey
const (

View File

@@ -17,11 +17,10 @@ package config
import (
_ "embed"
"fmt"
"gopkg.in/yaml.v3"
"reflect"
"testing"
"gopkg.in/yaml.v3"
"github.com/openimsdk/open-im-server/v3/pkg/msgprocessor"
)

View File

@@ -16,12 +16,12 @@ package cache
import (
"context"
"time"
"github.com/OpenIMSDK/tools/log"
"github.com/dtm-labs/rockscache"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"time"
"github.com/dtm-labs/rockscache"
relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/redis/go-redis/v9"
)

View File

@@ -1,25 +1,10 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cache
import (
"strings"
"sync"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"strings"
"sync"
)
var (

View File

@@ -16,15 +16,15 @@ package cache
import (
"context"
"github.com/OpenIMSDK/tools/log"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"math/big"
"strings"
"time"
"github.com/OpenIMSDK/tools/log"
"github.com/OpenIMSDK/tools/utils"
"github.com/dtm-labs/rockscache"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/redis/go-redis/v9"
)
@@ -37,7 +37,7 @@ const (
//recvMsgOptKey = "RECV_MSG_OPT:"
//superGroupRecvMsgNotNotifyUserIDsKey = "SUPER_GROUP_RECV_MSG_NOT_NOTIFY_USER_IDS:"
//superGroupRecvMsgNotNotifyUserIDsHashKey = "SUPER_GROUP_RECV_MSG_NOT_NOTIFY_USER_IDS_HASH:"
//conversationNotReceiveMessageUserIDsKey = "CONVERSATION_NOT_RECEIVE_MESSAGE_USER_IDS:".
//conversationNotReceiveMessageUserIDsKey = "CONVERSATION_NOT_RECEIVE_MESSAGE_USER_IDS:"
conversationExpireTime = time.Second * 60 * 60 * 12
)

View File

@@ -16,13 +16,13 @@ package cache
import (
"context"
"time"
"github.com/OpenIMSDK/tools/log"
"github.com/OpenIMSDK/tools/utils"
"github.com/dtm-labs/rockscache"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"time"
"github.com/OpenIMSDK/tools/utils"
"github.com/dtm-labs/rockscache"
relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/redis/go-redis/v9"
)
@@ -31,7 +31,7 @@ const (
friendExpireTime = time.Second * 60 * 60 * 12
//friendIDsKey = "FRIEND_IDS:"
//TwoWayFriendsIDsKey = "COMMON_FRIENDS_IDS:"
//friendKey = "FRIEND_INFO:".
//friendKey = "FRIEND_INFO:"
)
// FriendCache is an interface for caching friend-related data.

View File

@@ -17,6 +17,8 @@ package cache
import (
"context"
"fmt"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"time"
"github.com/OpenIMSDK/protocol/constant"
@@ -24,8 +26,6 @@ import (
"github.com/OpenIMSDK/tools/log"
"github.com/OpenIMSDK/tools/utils"
"github.com/dtm-labs/rockscache"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/redis/go-redis/v9"
)
@@ -38,7 +38,7 @@ const (
//groupMemberInfoKey = "GROUP_MEMBER_INFO:"
//joinedGroupsKey = "JOIN_GROUPS_KEY:"
//groupMemberNumKey = "GROUP_MEMBER_NUM_CACHE:"
//groupRoleLevelMemberIDsKey = "GROUP_ROLE_LEVEL_MEMBER_IDS:".
//groupRoleLevelMemberIDsKey = "GROUP_ROLE_LEVEL_MEMBER_IDS:"
)
type GroupHash interface {

View File

@@ -18,6 +18,7 @@ import (
"context"
"encoding/json"
"errors"
"github.com/redis/go-redis/v9"
"fmt"
"time"
@@ -26,7 +27,6 @@ import (
"github.com/OpenIMSDK/tools/mw/specialerror"
"github.com/OpenIMSDK/tools/utils"
"github.com/dtm-labs/rockscache"
"github.com/redis/go-redis/v9"
)
const (

View File

@@ -38,11 +38,11 @@ const (
conversationUserMinSeq = "CON_USER_MIN_SEQ:"
hasReadSeq = "HAS_READ_SEQ:"
//appleDeviceToken = "DEVICE_TOKEN".
//appleDeviceToken = "DEVICE_TOKEN"
getuiToken = "GETUI_TOKEN"
getuiTaskID = "GETUI_TASK_ID"
//signalCache = "SIGNAL_CACHE:"
//signalListCache = "SIGNAL_LIST_CACHE:".
//signalListCache = "SIGNAL_LIST_CACHE:"
FCM_TOKEN = "FCM_TOKEN:"
messageCache = "MESSAGE_CACHE:"

View File

@@ -18,6 +18,8 @@ import (
"context"
"encoding/json"
"errors"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"hash/crc32"
"strconv"
"time"
@@ -27,15 +29,13 @@ import (
"github.com/OpenIMSDK/tools/errs"
"github.com/OpenIMSDK/tools/log"
"github.com/dtm-labs/rockscache"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
relationtb "github.com/openimsdk/open-im-server/v3/pkg/common/db/table/relation"
"github.com/redis/go-redis/v9"
)
const (
userExpireTime = time.Second * 60 * 60 * 12
//userInfoKey = "USER_INFO:".
//userInfoKey = "USER_INFO:"
userGlobalRecvMsgOptKey = "USER_GLOBAL_RECV_MSG_OPT_KEY:"
olineStatusKey = "ONLINE_STATUS:"
userOlineStatusExpireTime = time.Second * 60 * 60 * 24

View File

@@ -16,7 +16,6 @@ package mgo
import (
"context"
"github.com/OpenIMSDK/protocol/constant"
"time"
"github.com/OpenIMSDK/tools/errs"
@@ -70,8 +69,7 @@ func (g *GroupMgo) Take(ctx context.Context, groupID string) (group *relation.Gr
}
func (g *GroupMgo) Search(ctx context.Context, keyword string, pagination pagination.Pagination) (total int64, groups []*relation.GroupModel, err error) {
return mgoutil.FindPage[*relation.GroupModel](ctx, g.coll, bson.M{"group_name": bson.M{"$regex": keyword},
"status": bson.M{"$ne": constant.GroupStatusDismissed}}, pagination)
return mgoutil.FindPage[*relation.GroupModel](ctx, g.coll, bson.M{"group_name": bson.M{"$regex": keyword}}, pagination)
}
func (g *GroupMgo) CountTotal(ctx context.Context, before *time.Time) (count int64, err error) {

View File

@@ -1063,8 +1063,8 @@ func (m *MsgMongoDriver) searchMessage(ctx context.Context, req *msg.SearchMessa
// Changed to keyed fields for bson.M to avoid govet errors
condition = append(condition, bson.M{"$eq": bson.A{bson.M{"$dateToString": bson.M{"format": "%Y-%m-%d", "date": bson.M{"$toDate": "$$item.msg.send_time"}}}, req.SendTime}})
}
if req.ContentType != 0 {
condition = append(condition, bson.M{"$eq": bson.A{"$$item.msg.content_type", req.ContentType}})
if req.MsgType != 0 {
condition = append(condition, bson.M{"$eq": bson.A{"$$item.msg.content_type", req.MsgType}})
}
if req.SessionType != 0 {
condition = append(condition, bson.M{"$eq": bson.A{"$$item.msg.session_type", req.SessionType}})

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package redispubsub
import "github.com/redis/go-redis/v9"

View File

@@ -1,22 +1,7 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package redispubsub
import (
"context"
"github.com/redis/go-redis/v9"
)

View File

@@ -1,26 +1,11 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package localcache
import (
"context"
"hash/fnv"
"unsafe"
"github.com/openimsdk/localcache/link"
"github.com/openimsdk/localcache/lru"
"hash/fnv"
"unsafe"
)
type Cache[V any] interface {

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package localcache
import (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package link
import (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package link
import (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package lru
import "github.com/hashicorp/golang-lru/v2/simplelru"

View File

@@ -1,24 +1,9 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package lru
import (
"github.com/hashicorp/golang-lru/v2/expirable"
"sync"
"time"
"github.com/hashicorp/golang-lru/v2/expirable"
)
func NewExpirationLRU[K comparable, V any](size int, successTTL, failedTTL time.Duration, target Target, onEvict EvictCallback[K, V]) LRU[K, V] {

View File

@@ -1,24 +1,9 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package lru
import (
"github.com/hashicorp/golang-lru/v2/simplelru"
"sync"
"time"
"github.com/hashicorp/golang-lru/v2/simplelru"
)
type layLruItem[V any] struct {

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package lru
import (

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package lru
func NewSlotLRU[K comparable, V any](slotNum int, hash func(K) uint64, create func() LRU[K, V]) LRU[K, V] {

View File

@@ -1,24 +1,9 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package localcache
import (
"context"
"time"
"github.com/openimsdk/localcache/lru"
"time"
)
func defaultOption() *option {

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package localcache
func AnyValue[V any](v any, err error) (V, error) {

View File

@@ -1,17 +1,3 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package rpccache
func newListMap[V comparable](values []V, err error) (*listMap[V], error) {

View File

@@ -1,22 +1,7 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package rpccache
import (
"context"
pbconversation "github.com/OpenIMSDK/protocol/conversation"
"github.com/OpenIMSDK/tools/errs"
"github.com/OpenIMSDK/tools/log"

View File

@@ -1,22 +1,7 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package rpccache
import (
"context"
"github.com/OpenIMSDK/tools/log"
"github.com/openimsdk/localcache"
"github.com/openimsdk/open-im-server/v3/pkg/common/cachekey"
@@ -64,7 +49,7 @@ func (f *FriendLocalCache) IsFriend(ctx context.Context, possibleFriendUserID, u
}, cachekey.GetFriendIDsKey(possibleFriendUserID)))
}
// IsBlack possibleBlackUserID selfUserID.
// IsBlack possibleBlackUserID selfUserID
func (f *FriendLocalCache) IsBlack(ctx context.Context, possibleBlackUserID, userID string) (val bool, err error) {
log.ZDebug(ctx, "FriendLocalCache IsBlack req", "possibleBlackUserID", possibleBlackUserID, "userID", userID)
defer func() {

View File

@@ -1,22 +1,7 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package rpccache
import (
"context"
"github.com/OpenIMSDK/protocol/sdkws"
"github.com/OpenIMSDK/tools/errs"
"github.com/OpenIMSDK/tools/log"

View File

@@ -1,23 +1,8 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package rpccache
import (
"context"
"encoding/json"
"github.com/OpenIMSDK/tools/log"
"github.com/redis/go-redis/v9"
)

View File

@@ -1,22 +1,7 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package rpccache
import (
"context"
"github.com/OpenIMSDK/protocol/sdkws"
"github.com/OpenIMSDK/tools/errs"
"github.com/OpenIMSDK/tools/log"

View File

@@ -21,6 +21,10 @@
# checks them out to a branch named:
# automated-cherry-pick-of-<pr>-<target branch>-<timestamp>
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${OPENIM_ROOT}/scripts/lib/init.sh"

View File

@@ -1272,7 +1272,7 @@ openim::test::search_msg() {
{
"sendID": "${sendID}",
"recvID": "${recvID}",
"contentType": ${msgType},
"msgType": ${msgType},
"sendTime": "${sendTime}",
"sessionType": ${sessionType},
"pagination": {

View File

@@ -413,7 +413,7 @@ openim::util::check_process_names() {
else
# If there are PIDs, loop through each one
for pid in "${pids[@]}"; do
local command=$(ps -p $pid -o cmd=)
local command=$(ps -p $pid -o comm=)
local start_time=$(ps -p $pid -o lstart=)
local port=$(get_port $pid)
@@ -489,7 +489,7 @@ openim::util::check_process_names_for_stop() {
else
# If there are PIDs, loop through each one
for pid in "${pids[@]}"; do
local command=$(ps -p $pid -o cmd=)
local command=$(ps -p $pid -o comm=)
local start_time=$(ps -p $pid -o lstart=)
local port=$(get_port $pid)

View File

@@ -1,46 +0,0 @@
#!/usr/bin/env bash
# Copyright © 2023 OpenIM. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This script verifies whether codes follow golang convention.
# Usage: `scripts/verify-pkg-names.sh`.
set -o errexit
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${OPENIM_ROOT}/scripts/lib/init.sh"
openim::golang::verify_go_version
openim::golang::verify_go_version
OPENIM_OUTPUT_HOSTBIN_TOOLS="${OPENIM_ROOT}/_output/bin/tools/linux/amd64"
CODESCAN_BINARY="${OPENIM_OUTPUT_HOSTBIN_TOOLS}/codescan"
if [[ ! -f "${CODESCAN_BINARY}" ]]; then
echo "codescan binary not found, building..."
pushd "${OPENIM_ROOT}" >/dev/null
make build BINS="codescan"
popd >/dev/null
fi
if [[ ! -f "${CODESCAN_BINARY}" ]]; then
echo "Failed to build codescan binary."
exit 1
fi
CONFIG_PATH="${OPENIM_ROOT}/tools/codescan/config.yaml"
"${CODESCAN_BINARY}" -config "${CONFIG_PATH}"

View File

@@ -1,104 +0,0 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package checker
import (
"bufio"
"fmt"
"os"
"path/filepath"
"regexp"
"strings"
"github.com/openimsdk/open-im-server/tools/codescan/config"
)
type CheckResult struct {
FilePath string
Lines []int
}
func checkFileForChineseComments(filePath string) ([]CheckResult, error) {
file, err := os.Open(filePath)
if err != nil {
return nil, err
}
defer file.Close()
var results []CheckResult
scanner := bufio.NewScanner(file)
reg := regexp.MustCompile(`[\p{Han}]+`)
lineNumber := 0
var linesWithChinese []int
for scanner.Scan() {
lineNumber++
if reg.FindString(scanner.Text()) != "" {
linesWithChinese = append(linesWithChinese, lineNumber)
}
}
if len(linesWithChinese) > 0 {
results = append(results, CheckResult{
FilePath: filePath,
Lines: linesWithChinese,
})
}
if err := scanner.Err(); err != nil {
return nil, err
}
return results, nil
}
func WalkDirAndCheckComments(cfg config.Config) error {
var allResults []CheckResult
err := filepath.Walk(cfg.Directory, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
for _, fileType := range cfg.FileTypes {
if filepath.Ext(path) == fileType {
results, err := checkFileForChineseComments(path)
if err != nil {
return err
}
if len(results) > 0 {
allResults = append(allResults, results...)
}
}
}
return nil
})
if err != nil {
return err
}
if len(allResults) > 0 {
var errMsg strings.Builder
errMsg.WriteString("Files containing Chinese comments:\n")
for _, result := range allResults {
errMsg.WriteString(fmt.Sprintf("%s: Lines %v\n", result.FilePath, result.Lines))
}
return fmt.Errorf(errMsg.String())
}
return nil
}

View File

@@ -1,34 +0,0 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package main
import (
"log"
"github.com/openimsdk/open-im-server/tools/codescan/checker"
"github.com/openimsdk/open-im-server/tools/codescan/config"
)
func main() {
cfg, err := config.ParseConfig()
if err != nil {
log.Fatalf("Error parsing config: %v", err)
}
err = checker.WalkDirAndCheckComments(cfg)
if err != nil {
panic(err)
}
}

View File

@@ -1,21 +0,0 @@
# Copyright © 2024 OpenIM. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
directory: ./
file_types:
- .go
- .yaml
- .yml
languages:
- Chinese

View File

@@ -1,49 +0,0 @@
// Copyright © 2024 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package config
import (
"flag"
"log"
"os"
"gopkg.in/yaml.v2"
)
type Config struct {
Directory string `yaml:"directory"`
FileTypes []string `yaml:"file_types"`
Languages []string `yaml:"languages"`
}
func ParseConfig() (Config, error) {
var configPath string
flag.StringVar(&configPath, "config", "./", "Path to config file")
flag.Parse()
var config Config
if configPath != "" {
configFile, err := os.ReadFile(configPath)
if err != nil {
return Config{}, err
}
if err := yaml.Unmarshal(configFile, &config); err != nil {
return Config{}, err
}
} else {
log.Fatal("Config file must be provided")
}
return config, nil
}

View File

@@ -1,3 +0,0 @@
module github.com/openimsdk/open-im-server/tools/codescan
go 1.19

View File

@@ -30,9 +30,8 @@ import (
"github.com/OpenIMSDK/tools/component"
"github.com/OpenIMSDK/tools/errs"
"gopkg.in/yaml.v3"
"github.com/openimsdk/open-im-server/v3/pkg/common/config"
"gopkg.in/yaml.v3"
)
const (
@@ -99,13 +98,14 @@ func main() {
}
checks := []checkFunc{
//{name: "Mysql", function: checkMysql},
{name: "Mongo", function: checkMongo, config: conf},
{name: "Redis", function: checkRedis, config: conf},
{name: "Minio", function: checkMinio, config: conf},
{name: "Zookeeper", function: checkZookeeper, config: conf},
{name: "Kafka", function: checkKafka, config: conf},
}
if conf.Object.Enable == "minio" {
checks = append(checks, checkFunc{name: "Minio", function: checkMinio, config: conf})
}
for i := 0; i < maxRetry; i++ {
if i != 0 {