0%

第一角色原理

站在第一角色上思考、讲话、做事,是做正确的事、少犯错误保障。

工作理念,管理技能,

内心的纠结和矛盾大多事角色认知的冲突!

人生的很多错误都是角色认知的错误!

职场上的大多数错误都是角色认知的错误!

管理着的第一角色是“人”的工作–先人后事

计划、组织、指挥、控制(事前、事中、事后)

721法则(人才培养)

任职资格

薪酬、职业发展、

名词

简称 全称 释义
VoIP Voice over IP 承载于IP网上的语音通信
VoLTE Voice over LTE LTE网络直传 LTE网络环境下的VoIP业务
LTE Long Term Evolution 长期演进技术 电信中用于手机及数据终端的高速无线通讯标准
SIP Session Initiation Protocol 会话初始协议 IP电话信令协议
PSTN Public Switched Telephone Network 公共交换电话网 我们日常打电话所使用的电话网络
PCM Pulse Code Modulation 脉冲编码调制 是一种通用的将模拟信号转换成以0,1表示的数字信号方法
RTP Real-time Transport Protocol 实时传输协议
IMS IP Multimedia Subsystem IP多媒体子系统 基于IP网提供语音及多媒体业务的网络体系架构
HLR Home Location Register 归属位置寄存器
VLR Visitor Location Register 拜访位置寄存器
MSC Mobile Switch Center 移动交换中心
PBX Private Branch e Xchange 专用小交换机
CTI Computer Telephony Integration 计算机电话集成
阅读全文 »

freeswitch常用命令

Linux环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 启动
freeswitch

# 启动并后台运行
freeswitch -nc

# 进入客户端
fs_cli

# 退出客户端:
/exit, /bye, /quit Ctrl+D

# 停止:
freeswitch -stop

# 查看freeswitch的端口情况:
netstat -anp|grep freeswitch

# 查看当前注册的用户数量:
sofia status profile internal

# 查看坐席是否注册 (1001为分机号)
sofia status profile internal reg 1001

# 使用fs_cli进行呼叫,其中&echo会把听到的声音返回给发出者:
originate user/1001 &echo


查询网关状态: sofia status profile local
阅读全文 »

使用场景

web页面的查询功能太复杂,pageHelper自动生成的count语句相当于在查询语句外包一层count,查询速度比较慢。需要优化count语句,所以才想起来自定义count语句。

版本要求

5.0.4版本及以上

1
2
3
4
5
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.4</version>
</dependency>

使用方式

原有的代码不需要动,只需要在mybatis的xml文件里添加一个count查询
这里注意以下三点即可:

  1. id和对应的查询语句保持一致,并且以 _COUNT 结尾
  2. 入参和对应的查询语句保持一致
  3. 出参为 resultType=”Long”

查询语句

1
2
3
<select id="searchAllCondition" parameterType="com.demo.MyForm" resultMap="SearchResultMap">
select name,age,sex from student
</select>

count语句

1
2
3
<select id="searchAllCondition_COUNT" parameterType="com.demo.MyForm" resultType="Long">
select count(1) from student
</select>

意以上demo两个语句的区别

  1. count语句的id和查询语句的id
  2. count语句的parameterType和查询语句的parameterType
  3. count语句的出参一定是resultType=”Long”

官方文档

https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/Changelog.md#504%E2%80%942017-08-01

配置文件案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<ehcache>
<!--
磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
path:指定在硬盘上存储对象的路径
-->
<diskStore path="java.io.tmpdir" />

<!--
defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理
maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象
eternal:代表对象是否永不过期
timeToIdleSeconds:最大的发呆时间
timeToLiveSeconds:最大的存活时间
overflowToDisk:是否允许对象被写入到磁盘
-->
<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />

<!--
cache:为指定名称的对象进行缓存的特殊配置
name:指定对象的完整名
-->
<cache name="com.zbaccp.entity.Person" maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" />


</ehcache>

属性详解

diskStore :指定数据(.data and .index)存储位置,可指定磁盘中的文件夹位置
defaultCache : 默认的管理策略

一、以下属性是必须的:
  name: Cache的名称,必须是唯一的(ehcache会把这个cache放到HashMap里)。
  maxElementsInMemory:在内存中缓存的element的最大数目。
  maxElementsOnDisk:在磁盘上缓存的element的最大数目,默认值为0,表示不限制。
  eternal:设定缓存的elements是否永远不过期。如果为true,则缓存的数据始终有效,如果为false那么还要根据timeToIdleSeconds,timeToLiveSeconds判断。
  overflowToDisk: 如果内存中数据超过内存限制,是否要缓存到磁盘上。

二、以下属性是可选的:
  timeToIdleSeconds: 对象空闲时间,指对象在多长时间没有被访问就会失效。只对eternal为false的有效。默认值0,表示一直可以访问。
  timeToLiveSeconds: 对象存活时间,指对象从创建到失效所需要的时间。只对eternal为false的有效。默认值0,表示一直可以访问。
  diskPersistent: 是否在磁盘上持久化。指重启jvm后,数据是否有效。默认为false。
  diskExpiryThreadIntervalSeconds: 对象检测线程运行时间间隔。标识对象状态的线程多长时间运行一次。
  diskSpoolBufferSizeMB: DiskStore使用的磁盘大小,默认值30MB。每个cache使用各自的DiskStore。
  memoryStoreEvictionPolicy: 如果内存中数据超过内存限制,向磁盘缓存时的策略。默认值LRU,可选FIFO、LFU。

三、缓存的3 种清空策略 :
  FIFO ,first in first out (先进先出).
  LFU , Less Frequently Used (最少使用).意思是一直以来最少被使用的。缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。
  LRU ,Least Recently Used(最近最少使用). (ehcache 默认值).缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。