本文整理汇总了Golang中github.com/boltdb/bolt.DB.Sync方法的典型用法代码示例。如果您正苦于以下问题:Golang DB.Sync方法的具体用法?Golang DB.Sync怎么用?Golang DB.Sync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/boltdb/bolt.DB
的用法示例。
在下文中一共展示了DB.Sync方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getTwitterData
func getTwitterData(DB *bolt.DB) {
anaconda.SetConsumerKey("KmxA5PMS1WaVdSnJrYtq5XANb")
anaconda.SetConsumerSecret("yt7ydv2qFt7BpyHrMK3UzIj7HXGGv7ezcVTnELxhgh2WMGj9IA")
api := anaconda.NewTwitterApi(
"268263175-deYL6a9YyDMy8YRDQI0p9NDBoKuZScRKG24Dpqkj",
"PrFnSYOzsZjPYc5zhN9qeviyyHH0x1sKkiOYSSyPdWrnS")
tweets, err := api.GetHomeTimeline(url.Values{
"count": {"10"},
})
if err != nil {
// TODO -- Handle timeouts here
panic(err)
}
Tx, err := DB.Begin(true)
if err != nil {
// TODO -- Handle this gracely
panic(err)
}
Bucket := Tx.Bucket([]byte("tweets"))
for _, t := range tweets {
tweetText := t.Text
if t.RetweetedStatus != nil {
tweetText = t.RetweetedStatus.Text
}
tweetText = replaceURLS(tweetText, func(s string) string {
fmt.Println("Replacing ", s)
for retries := 0; retries < 3; retries++ {
newS, err := getRedirectedURL(s)
if err != nil {
time.Sleep(time.Duration(1+retries) * time.Second)
continue
}
return newS
}
return s
})
if t.RetweetedStatus != nil {
t.RetweetedStatus.Text = tweetText
} else {
t.Text = tweetText
}
data, err := json.Marshal(t)
if err != nil {
Tx.Rollback()
DB.Sync()
panic(err)
}
key := []byte(strconv.FormatInt(t.Id, 16))
if err = Bucket.Put(key, data); err != nil {
Tx.Rollback()
DB.Sync()
panic(err)
}
}
Tx.Commit()
}