起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19837|回复: 11

[结贴] 消息推送服务器占用大数据库资源,导致消息推送慢

[复制链接]

33

主题

140

帖子

871

积分

高级会员

Rank: 4

积分
871
QQ
发表于 2021-4-6 08:46:32 | 显示全部楼层 |阅读模式
本帖最后由 akshay 于 2021-4-6 09:34 编辑

1.如图所示,消息推送服务器的BeX5端每推送一次消息,就执行下面的语句一次
select sFID as sFID, sPersonID as sPersonID from SA_OPOrg where sValidState>0 and sOrgKindID='psm';
但是我们的平台这个语句的每次执行结果有8万多行,数据有10MB,导致大量的数据库资源被消耗,我们每天平均推送消息两万多条,消息推送的性能严重受该语句的执行结果影响
我们的消息推送服务器仅推送消息,不做别的事情,7天消耗500GB,每小时有大量待办任务积压在推送服务器
请问如何优化该问题?
经过查找   \runtime\PushServer\WEB-INF\lib\push-server.jar目录下有执行该语句未加过滤,导致消息推送时很慢
1.png 2.png 3.png 4.png 5.png QQ截图20210406093150.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-4-6 09:54:04 | 显示全部楼层
x5具体用的什么版本?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

33

主题

140

帖子

871

积分

高级会员

Rank: 4

积分
871
QQ
 楼主| 发表于 2021-4-6 09:54:17 | 显示全部楼层
本帖最后由 akshay 于 2021-4-6 09:55 编辑
jishuang 发表于 2021-4-6 09:54
x5具体用的什么版本?

X5.3.7,准备在11月底升级到3.9,但是这个问题急需解决。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-4-6 12:02:31 | 显示全部楼层
这个问题平台后续提供补丁解决
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

33

主题

140

帖子

871

积分

高级会员

Rank: 4

积分
871
QQ
 楼主| 发表于 2021-4-6 12:21:57 | 显示全部楼层
本帖最后由 akshay 于 2021-4-6 13:13 编辑
jishuang 发表于 2021-4-6 12:02
这个问题平台后续提供补丁解决

能否提供一下该补丁提供的最迟时间节点?或者单独提供push-server.jar这个java原文件也可以
回复 支持 反对

使用道具 举报

33

主题

140

帖子

871

积分

高级会员

Rank: 4

积分
871
QQ
 楼主| 发表于 2021-4-8 14:09:57 | 显示全部楼层
jishuang 发表于 2021-4-6 12:02
这个问题平台后续提供补丁解决

您好,能否告诉我们一下补丁提供的时间呢
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-4-8 19:06:35 | 显示全部楼层
已经告知相关人员处理,处理后会在论坛中告知
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-4-8 20:55:58 | 显示全部楼层
留一个邮箱可以提供的是pushServer.jar的源码,以及修改方案,可以自己修改测试修改的思路
/**
         * 缓存组织信息
         * 1. 取出组织版本号
         *                 select sCode from SA_Code sType='orgVersion'
         * 2. 判断当前缓存的组织版本号是否一致
         *                 如果一致, 直接 使用缓存的组织;
         *                 如果不一致, 加载新的组织到缓存里, 并更新缓存中组织版本号
         */
         

1.修改的是src\com\justep\push\OrgUtils.java
2.把getAllPerson方法改名为loadOrgsFromDB
3.定义存储组织版本和组织缓存数据的变量
        public static final String orgVersion = "";
        public static final Map<String, Set<String>> orgs = new ConcurrentHashMap<String, Set<String>>();
4.定义getOrgVersionFromDB方法
   主要实现获取组织版本,并存到缓存变量orgVersion中
    sql语句:select sCode from SA_Code where sType='orgVersion'
5.定义getAllPerson方法
        private synchronized static Map<String, Set<String>> getAllPerson(){
             String orgVersionFromDB = getOrgVersionFromDB();
             if (orgVersionFromDB.equals(orgVersion)){
                     return orgs;
             }else{
                     orgs = loadOrgsFromDB();
                     orgVersion = orgVersionFromDB;
                     return orgs;
             }
           }



远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

33

主题

140

帖子

871

积分

高级会员

Rank: 4

积分
871
QQ
 楼主| 发表于 2021-4-9 08:35:34 | 显示全部楼层
jishuang 发表于 2021-4-8 20:55
留一个邮箱可以提供的是pushServer.jar的源码,以及修改方案,可以自己修改测试修改的思路
/**
         * 缓存组 ...

非常感谢  邮箱是342879211@qq.com
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-4-9 09:04:09 | 显示全部楼层
已发送到邮箱,请查收
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-24 09:40 , Processed in 0.062545 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表