Coding 博客

  • 首页

  • 归档

  • 分类

  • 标签

基于etcd实现分布式配置中心

发表于 2019-06-14 | 分类于 后端那些事

golang协程池

发表于 2018-06-12

golang 简单的协程池的实现

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
30
31
32
33
34
35
36
import "sync"

type Worker interface {
Task()
}

type Pool struct {
work chan Worker
wg sync.WaitGroup
}

func New(maxGoroutines int) *Pool {
p := Pool{work: make(chan Worker)}
p.wg.Add(maxGoroutines)
for i := 0; i < maxGoroutines; i++ {
go func() {
for w := range p.work {
w.Task()
}
p.wg.Done()

}()

}
return &p
}

func (p *Pool) Run(w Worker) {
p.work <- w

}

func (p *Pool) Shutdown() {
close(p.work)
p.wg.Wait()
}
阅读全文 »

Web 实现轮询

发表于 2018-06-11 | 更新于 2018-06-12

Web 实现轮询

实时通知与交付

一. 通过XHR 实现定时轮询

1
2
3
4
5
6
7
func checkUpdates(url){
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onloda = function() {.....};
xhr.send();
}
setInterval("checkUpdates('/updates'), 6000"); // 每6秒发一次XHR请求, 到服务端

最佳的轮询间隔是多少? 没有唯一的答案。

轮询的频率取决于应用的需要,而且始终都会存在关于效率和消息延迟的权衡,所以说。轮询适合间隔时间长;

新事件到达的时间有规律,且传输数据量大的场景。这个组合可以抵消多余的 HTTP 开销,并将消息交付的延迟最小化。

二. 通过XHR 实现长轮询

1
2
3
4
5
6
7
8
9
10
func checkUpdates(url){
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onloda = function() {
.....
checkUpdates('/updates');
};
xhr.send();
}
checkUpdates('/updates');

三. Websocket 实现长轮询

Vscode写Golang小技巧

发表于 2018-06-07 | 分类于 Vscode

Vscode 写Golang 的小技巧

首先装好Vscode 编辑器 插件 VsCode-Go. 一切安装正常的。

阅读全文 »

react-websocket

发表于 2018-06-06 | 更新于 2019-06-14 | 分类于 前端那些事

React - WebSocket

基于React 实现 WebSocket 连接

1
2


123
Coding

Coding

个人博客

11 日志
6 分类
6 标签
© 2019 Coding
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Pisces v6.3.0