Go语言中文网 为您找到相关结果 8

正确使用Go的Timer

我们总是会使用Timer去执行一些定时任务,最近在Go语言的定时器使用上面不小心踩到一点问题,这里记录一下。 go demo(input) func demo(input chan interface{}) { for { select { case msg <- input: println(msg) case <-time.After(time.Second * 5): println("5s timer") case <-time.After(time.Second * 10): println("10s timer") } } } 写出上面这段程序的目的是从 input channel 持续接收消息加以处理,同时希望每过5秒钟和每过10秒钟就分别执行一个定时任务。但是当你执行这段程序...阅读全文

博文 2014-11-16 09:30:05 skoo

go语言的select 与chan

chan是golang非常重要的一个概念,用于在不同的goroutine之间通信或共享数据,是go推荐的共享数据的方式。 chan有默认的deadlock检测机制,例如这段代码 http://play.golang.org/p/_0UWFWiGOr 运行的时候会提示: fatal error: all goroutines are asleep – deadlock! chan可以与select相结合,当chan与select结合的时候,有一个很有意思的现象,就是chan会变成非阻塞的 更有趣的是time.Timer,chan与select相结合的例子,每次select的chan case发生时,都会重置timer。一个极端的例子,select中,只有timer和default时,这个程序将...阅读全文

博文 2015-03-24 23:24:13 铁哥

golang beego cache

1 package main 2 3 import ( 4 "fmt" 5 "github.com/astaxie/beego/cache" 6 "time" 7 ) 8 9 func main() { 10 //一秒钟 11 bm, _ := cache.NewCache("memory", `{"interval":1}`) 12 13 bm.Put("astaxie", 1, 10) 14 bm.Get("astaxie") 15 fmt.Println("do get: ", bm.Get("astaxie")) 16 bm.IsExist("astaxie") 17 fmt.Println("IsExist: ", bm.IsExist("astaxie")) 18 //bm.De...阅读全文

博文 2015-04-18 03:00:00 rojas

[翻译]Go语言开发苹果推送通知

文在此:http://bravenewmethod.wordpress.com/2011/02/25/apple-push-notifications-with-go-language/ 前两天正巧看到 APNS 没有 Go 的实现,还在琢磨怎么实现一个试试,这下我又省心了。文章本身并不怎么出色,代码倒是有些用途。翻译这篇东西纯粹是为了给自己后面的工作留个资料。大家有用则用,无用就无视吧。 ————–翻译分割线————– Go语言开发苹果推送通知 我开始尝试学习并熟悉 Go 语言,并且做了一些普通的常识,例如,发送苹果推送通知(Apple Push Notifications)。这是我个人对一些开发环境的性能测试。迄今为止,已经有: 使用 Node.js 的推送通知(Push notific...阅读全文

博文 2014-10-09 16:15:11 mikespook

日志搜索平台Poseidon

波塞冬,是希腊神话中的海神,在这里是寓意着海量数据的主宰者。 Poseidon 系统是一个日志搜索平台,可以在数百万亿条、数百PB大小的日志数据中快速分析和检索特定字符串。 360公司是一个安全公司,在追踪 APT(高级持续威胁)事件时,经常需要在海量的历史日志数据中检索某些信息, 例如某个恶意样本在某个时间段内的活动情况。在 Poseidon 系统出现之前,都是写 Map/Reduce 计算任务在 Hadoop 集群中做计算, 一次任务所需的计算时间从数小时到数天不等,大大制约了 APT 事件的追踪效率。 Poseidon 系统就是为了解决这个需求,能在几秒钟内从数百万亿条规模的数据集中找出我们需要的数据,大大提高工作效率; 同时,这些数据不需要额外存储,仍然存放在Hadoop集群中,节...阅读全文

开源项目 2017-02-07 03:16:54 Qihoo360

HTTPS和HTTP有什么区别?如何将HTTP转化成HTTPS

不知道大家有没有注意到输入网址时的HTTP部分,在打开网站进行操作时有时候会自动跳转为HTTPS格式,这是为什么?HTTP与HTTPS到底有什么区别?如何将HTTP转化成HTTPS,针对这些问题,我们做了一个整理。 1.什么是HTTP与HTTPS? 大家在输入网址的时候最常见的其实就是HTTP这种格式的。HTTP是互联网上应用最广的一种网络协议、一种标准,用于从WWW服务器传输超文本到本地浏览器的传输协议,就是减少网络传输,使浏览器更高效。 HTTPS则相当于安全版的HTTP,HTTP协议以明文方式发送内容,不提供数据加密,如果攻击者截取服务器与浏览器之间的传输报文,就可以直接读懂其中的信息。而HTTPS相当于在明文本上加上SSL层,独特的加密方式,唯一的秘钥,以此确保其信...阅读全文

大佬们go并发有个问题想请教一下-关于1秒钟并发请求N个api的问题

#### 我有一些抓取操作,需要1秒钟实现10个api的请求,我把那些数据,临时存储到数组里面,但是不知道怎么通过并发的形式实现 ```go func main() { timeout := time.NewTicker(1 * time.Second).C var zips = []string{"01", "02", "03", "04", "05", "06", "07", "08", "14", "15", "16", "09", "10", "11", "12", "13", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", ...阅读全文

time.Unix(sed, nsed)

# time.Unix(sed, nsed) 最近看到代码中有一行这个, 单纯看英文并不是太理解, 然后这里找了一下,没有相关的解释.其实是一个很简单的函数. Unix()返回一个Time类型, 然后这个时间是UTC时间加上你的参数时间 ``` // ex: t := time.Unix(1, 0) fmt.Println(t) // 此处的时间就是UTC时间,加一秒钟 ``...阅读全文

博文 2019-03-01 11:16:02 NextLeaves