GOCN每日新闻(2017-09-01)

回复

每日新闻傅小黑 发起了问题 • 1 人关注 • 0 个回复 • 404 次浏览 • 2017-09-01 10:52 • 来自相关话题

如果做涉及网络的测试?

回复

有问必答narutoinfo 发起了问题 • 1 人关注 • 0 个回复 • 193 次浏览 • 2017-08-31 15:14 • 来自相关话题

GoCN每日新闻(2017-08-31)

回复

每日新闻astaxie 发起了问题 • 4 人关注 • 0 个回复 • 554 次浏览 • 2017-08-31 10:32 • 来自相关话题

[北京]链家基础架构部招聘资深后端工程师

招聘应聘bingful 发表了文章 • 0 个评论 • 305 次浏览 • 2017-08-30 18:33 • 来自相关话题

我们的团队

我们是链家集团链家网基础架构部团队,致力于提供高性能、高可用、稳定强大的公共基础服务,为公司各条业务线提供底层基础能力。

你要做的事

  • 负责核心服务业务接入、性能优化
  • 查看全部

我们的团队


我们是链家集团链家网基础架构部团队,致力于提供高性能、高可用、稳定强大的公共基础服务,为公司各条业务线提供底层基础能力。


你要做的事



  • 负责核心服务业务接入、性能优化

  • 参与负责基础服务的架构设计、开发和维护

  • 研发流程规范优化,研发效率提升


我们希望你



  • 热爱技术,聪明主动

  • 强悍扎实的编程功底, 熟悉网络 /操作系统 /数据结构

  • 熟悉 Go/C/C++/PHP 中的一门或若干门,并能快速学习其他语言和技术

  • 3 年及以上 Linux 平台下高性能服务架构设计 /开发 /调优经验

  • 熟悉 关系型 /非关系型数据库 中的一种或几种

  • 善于抽象和思考,有技术热情和追求

  • 有消息系统 /即时通讯设计开发经验优先

  • 独当一面的能力


我们能提供



  • 有竞争力的薪资

  • 技术成长空间巨大

  • 舒适的工作环境和技术学习氛围


福利



  • 办公设备:Mac or Thinkpad 可选

  • 免费三餐,免费水果,不限量果汁咖啡

  • 娱乐室:各种游戏机 /台球 /桌上足球 /跑步机等等娱乐设施

  • 每年 2 次绩效奖金和升职机会

  • 带薪年假 /五险一金 /补充医保

  • 内部各种培训和技术分享讲座


联系我们


工作地点:北京 海淀


简历请发至 qibing@lianjia.com ,注明来自 v2ex。有证明自己能力的作品,例如 github、技术博客请附上


简历请发至 qibing@lianjia.com ,注明来自 v2ex。有证明自己能力的作品,例如 github、技术博客请附上


简历请发至 qibing@lianjia.com ,注明来自 v2ex。有证明自己能力的作品,例如 github、技术博客请附上

轻松筹-招聘Golang技术经理-北京东城区

回复

招聘应聘jianan_song 发起了问题 • 1 人关注 • 0 个回复 • 255 次浏览 • 2017-08-30 14:32 • 来自相关话题

GOCN每日新闻(2017-08-30)

回复

每日新闻傅小黑 发起了问题 • 1 人关注 • 0 个回复 • 448 次浏览 • 2017-08-30 09:53 • 来自相关话题

GoCN每日新闻(2017-08-29)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 550 次浏览 • 2017-08-29 11:46 • 来自相关话题

go 1.9 多线程安全MAP 函数模块

文章分享alalmn 发表了文章 • 0 个评论 • 453 次浏览 • 2017-08-28 16:02 • 来自相关话题

package main

//go 1.9  多线程安全MAP  函数模块
//QQ:29295842  欢迎技术交流
import (
    //  "fmt"
    "s... 			查看全部
					
package main

//go 1.9 多线程安全MAP 函数模块
//QQ:29295842 欢迎技术交流
import (
// "fmt"
"sync"
)

var (
map_list sync.Map //广告配置信息
wgx sync.WaitGroup //
)

func Thread_map_add(id string, rows_map map[string]interface{}) { //添加数据
map_list.Store(id, rows_map)
}

func Thread_map_revise(id string, rows_map map[string]interface{}) { //修改
wgx.Add(1) //线程数
go func() {
map_list.LoadOrStore(id, rows_map) //修改
wgx.Done()
}()
wgx.Wait() //等待
}

func Thread_map_delete(id string) { //删除
wgx.Add(1) //线程数
go func() {
map_list.Delete(id) //删除
wgx.Done()
}()
wgx.Wait() //等待
}

func Thread_map_read(id string) (bool, string, map[string]interface{}) { //读取
read_bool := false
value := make(map[string]interface{})
value2, err := map_list.Load(id) //key读取
if err {
if valuexa, ok := value2.(map[string]interface{}); ok {
value = valuexa
read_bool = true
}
}
//fmt.Print("===%v==%v==\n", data, err)
//遍历读取
// map_list.Range(func(key, value2 interface{}) bool { //读取数据
// fmt.Println(key, "-----------", value2)
// // if valuexa, ok := value2.(map[string]interface{}); ok {
// // read_bool = true
// // //key = fmt.Sprintf("%v", key)
// // value = valuexa
// // }
// return true
// })
return read_bool, id, value
}

//fmt.Println("----------------")

// rows_map := make(map[string]interface{})
// rows_map["db_name"] = "098765"
// rows_map["list"] = "1234567"

// map_add("abc", rows_map)
// rows_map = make(map[string]interface{})
// rows_map["db_name"] = "aaaaaa"
// rows_map["list"] = "bbbbbbb"
// //map_add("123", rows_map)
// map_revise("abc", rows_map)
// rows_map3 := make(map[string]interface{})
// rows_map3["db_name"] = "rrrrr"
// rows_map3["list"] = "eeeeeee"
// map_add("1234", rows_map3)

// read_bool, key, re_map := map_read("abc")
// fmt.Printf("==%v==%v==%v==\n", read_bool, key, re_map["db_name"])

欢迎加入安徽Golang交流群

回复

技术讨论ecofast 发起了问题 • 1 人关注 • 0 个回复 • 249 次浏览 • 2017-08-28 15:16 • 来自相关话题

GOCN每日新闻(2017-08-28)

回复

每日新闻傅小黑 发起了问题 • 2 人关注 • 0 个回复 • 516 次浏览 • 2017-08-28 11:48 • 来自相关话题

GoCN每日新闻(2017-08-27)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 523 次浏览 • 2017-08-27 12:38 • 来自相关话题

GoCN每日新闻(2017-08-26)

回复

每日新闻astaxie 发起了问题 • 1 人关注 • 0 个回复 • 534 次浏览 • 2017-08-26 13:10 • 来自相关话题

redis 分布式锁

文章分享toukii 发表了文章 • 0 个评论 • 263 次浏览 • 2017-08-26 12:48 • 来自相关话题

rddlock

github.com/everfore/rddlock

redis distribute lock

... 查看全部

rddlock


github.com/everfore/rddlock


redis distribute lock


redis 分布式锁, 实现原理:redis分布式锁


Usage


Lock & UnLock


lockkey := "lock-key"
timeout_ms := 3000

locked, ex := rddlock.Lock(rds, lockkey, timeout_ms)
defer reelock.UnLock(rds, lockkey, ex)

LockRetry


retry_times := 10
locked, ex := reelock.LockRetry(rds, lockkey, timeout_ms, retry_times) // get lock by retry
defer reelock.UnLock(rds, lockkey, ex)

UnLockUnsafe


直接删除key,可能会有问题:若删除之前,该key已经超时且被其他进程获得锁,将会删除其他进程的锁;删除之后,锁被释放,进而会有其他进程2获得锁。。。雪崩


locked, _ := rddlock.Lock(rds, lockkey, timeout_ms)
defer reelock.UnLockUnsafe(rds, lockkey)

SyncDo 异步执行任务


err := SyncDo(rds, lockkey, timeout_ms, func(timeout chan bool) chan bool {
ret := make(chan bool, 1)
go func() {
fmt.Println("doing...")
// TODO SOMETHING
select {
case <-timeout:
// do the rollback
break
case ret <- true:
fmt.Println("success end.")
}
}()
return ret
})

test


success:200, avg:1.1074123 ms
failed:0, avg:NaN ms
--- PASS: TestLockTime (10.59s)

#local-redis
=== RUN TestLockRetryTime
success:200, avg:1.1741205 ms
failed:0, avg:NaN ms
--- PASS: TestLockRetryTime (10.58s)

#uat-redis
=== RUN TestLockRetryTime
success:200, avg:12.572702 ms
failed:0, avg:NaN ms
--- PASS: TestLockRetryTime (10.59s)

欢迎指正 github.com/everfore/rddlock

招聘Go工程师-北京雍和宫地铁口(15-30K)

回复

招聘应聘小井 发起了问题 • 1 人关注 • 0 个回复 • 330 次浏览 • 2017-08-25 18:42 • 来自相关话题

招聘Go工程师-北京快乐迭代

招聘应聘小井 发表了文章 • 0 个评论 • 234 次浏览 • 2017-08-25 18:38 • 来自相关话题

我公司14年成立,完成两轮融资,目前正在招聘Go工程师1名,待遇:每月15-30K左右。周末法定都休息,五险一金,带薪年假,年终奖金。 要求:1、熟悉 Go 语言。2、有高负载 Server 实战经验。3、对计算机技术有发自内心的兴趣。 欢迎大家推荐,有... 查看全部

我公司14年成立,完成两轮融资,目前正在招聘Go工程师1名,待遇:每月15-30K左右。周末法定都休息,五险一金,带薪年假,年终奖金。
要求:1、熟悉 Go 语言。2、有高负载 Server 实战经验。3、对计算机技术有发自内心的兴趣。
欢迎大家推荐,有丰厚推荐奖金。
联系:QQ 3407909729