当前位置: 首页 > news >正文

wordpress akina关键词优化和seo

wordpress akina,关键词优化和seo,怀柔网站建设,网站设计风格确认书errgroup 是 Go 语言官方扩展库 x/sync 中的一个包#xff0c;它提供了一种方式来并行运行多个 goroutine#xff0c;并在所有 goroutine 都完成时返回第一个发生的错误#xff08;如果有的话#xff09;。这对于需要并行处理多个任务并等待它们全部完成#xff0c;同时需…errgroup 是 Go 语言官方扩展库 x/sync 中的一个包它提供了一种方式来并行运行多个 goroutine并在所有 goroutine 都完成时返回第一个发生的错误如果有的话。这对于需要并行处理多个任务并等待它们全部完成同时需要处理其中任何一个可能发生的错误的场景非常有用。 errgroup 是 Go 语言中用于管理多个 goroutine 的同步和错误处理的库。使用 errgroup 可以简化并发代码的编写使得错误处理更加简洁和一致。 注意:goroutine任务需要有取消功能才能立即终止其它任务返回。 errgroup可以等待所有任务完成再返回也可以等到第一个错误出现时终止其它任务取决于业务逻辑。 它的主要作用包括 同步: errgroup.Group 提供了一个 Wait 方法这个方法会阻塞调用者直到组内的所有goroutine都完成执行。错误传播: errgroup 能确保第一个发生的错误会被立即传播给所有其他goroutine这样可以避免在多个并发任务中检查每个任务的状态简化错误处理逻辑。取消上下文: errgroup 结合 context.Context 使用可以在外部请求取消时通知所有goroutine停止执行。返回第一个错误原因。限制并发: 通过 SetLimit 方法errgroup 可以限制同时运行的goroutine数量。配合done()方法。cancel()触发done()。 案例1 fetch其中一个报错了其它的goroutine还在运行。errgroup返回的是最后一个错误。 package mainimport (errorsfmtgolang.org/x/sync/errgroupmath/randtime )func fetch(url string) (string, error) {randomNumber : rand.Intn(10) 5fmt.Println(randomNumber)time.Sleep(time.Duration(randomNumber) * time.Second)fmt.Println(fetch)return url, errors.New(error happens) }func main() {urls : []string{http://example.com,http://example.org,http://example.net,}rand.Seed(time.Now().UnixNano())var eg errgroup.Groupfor _, url : range urls {eg.Go(func() error {body, err : fetch(url)if err ! nil {return err}fmt.Printf(Fetched %s: %s\n, url, body)return nil})}if err : eg.Wait(); err ! nil {fmt.Printf(Failed to fetch one or more URLs: %v\n, err)} }输出: 14 7 9 fetch fetch fetch Failed to fetch one or more URLs: error happens这个并不是我们想要的结果我们期望其中一个goroutine报错后其它的任务终止。 案例2 当碰到错误会立即停止所有goroutine。 package mainimport (contexterrorsfmtgolang.org/x/sync/errgroupstringstime )func main() {queryUrls : map[string]string{url1: http://localhost/url1,url2: http://localhost/url2,url3: http://localhost/url3,}var results []stringctx, cancel : context.WithCancel(context.Background())eg, errCtx : errgroup.WithContext(ctx)for _, url : range queryUrls {url : urleg.Go(func() error {result, err : query(errCtx, url)if err ! nil {//其实这里不用手动取消看完源码就知道为啥了cancel()return err}results append(results, fmt.Sprintf(url:%s -- ret: %v, url, result))return nil})}err : eg.Wait()if err ! nil {fmt.Println(eg.Wait error:, err)return}for k, v : range results {fmt.Printf(%v --- %v\n, k, v)} }func query(errCtx context.Context, url string) (ret string, err error) {fmt.Printf(请求 %s 开始....\n, url)// 假设这里是发送请求获取数据if strings.Contains(url, url2) {// 假设请求 url2 时出现错误time.Sleep(time.Second * 2)return , errors.New(请求出错)} else if strings.Contains(url, url3) {// 假设 请求 url3 需要1秒select {case -errCtx.Done():ret, err , errors.New(请求3被取消)fmt.Println(请求3被取消)returncase -time.After(time.Second * 3):fmt.Printf(请求 %s 结束....\n, url)return success3, nil}} else {select {case -errCtx.Done():ret, err , errors.New(请求1被取消)fmt.Println(请求1被取消)returncase -time.After(time.Second):fmt.Printf(请求 %s 结束....\n, url)return success1, nil}}}输出: 请求 http://localhost/url2 开始.... 请求 http://localhost/url3 开始.... 请求 http://localhost/url1 开始.... 请求 http://localhost/url1 结束.... 请求3被取消 eg.Wait error: 请求出错eg.Wait() 会阻塞直到所有的 goroutine 都完成执行或者其中一个 goroutine 返回了错误。如果有错误发生eg.Wait() 会返回第一个遇到的错误。 通过使用 errgroup我们可以更容易地管理多个 goroutine并在其中一个 goroutine 发生错误时取消其他 goroutine。
文章转载自:
http://www.morning.ftgwj.cn.gov.cn.ftgwj.cn
http://www.morning.xqbgm.cn.gov.cn.xqbgm.cn
http://www.morning.dfndz.cn.gov.cn.dfndz.cn
http://www.morning.kybyf.cn.gov.cn.kybyf.cn
http://www.morning.lprfk.cn.gov.cn.lprfk.cn
http://www.morning.kqpq.cn.gov.cn.kqpq.cn
http://www.morning.xrnh.cn.gov.cn.xrnh.cn
http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn
http://www.morning.ykwbx.cn.gov.cn.ykwbx.cn
http://www.morning.hqbk.cn.gov.cn.hqbk.cn
http://www.morning.mfcbk.cn.gov.cn.mfcbk.cn
http://www.morning.ffbp.cn.gov.cn.ffbp.cn
http://www.morning.lsnhs.cn.gov.cn.lsnhs.cn
http://www.morning.ryzgp.cn.gov.cn.ryzgp.cn
http://www.morning.dqcpm.cn.gov.cn.dqcpm.cn
http://www.morning.xcbnc.cn.gov.cn.xcbnc.cn
http://www.morning.rjyd.cn.gov.cn.rjyd.cn
http://www.morning.tktyh.cn.gov.cn.tktyh.cn
http://www.morning.phechi.com.gov.cn.phechi.com
http://www.morning.nnpfz.cn.gov.cn.nnpfz.cn
http://www.morning.guofenmai.cn.gov.cn.guofenmai.cn
http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn
http://www.morning.hrpmt.cn.gov.cn.hrpmt.cn
http://www.morning.gkmwk.cn.gov.cn.gkmwk.cn
http://www.morning.gpnwq.cn.gov.cn.gpnwq.cn
http://www.morning.wynnb.cn.gov.cn.wynnb.cn
http://www.morning.mjqms.cn.gov.cn.mjqms.cn
http://www.morning.nyhtf.cn.gov.cn.nyhtf.cn
http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn
http://www.morning.mcmpq.cn.gov.cn.mcmpq.cn
http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn
http://www.morning.zqcgt.cn.gov.cn.zqcgt.cn
http://www.morning.dnwlb.cn.gov.cn.dnwlb.cn
http://www.morning.rmdsd.cn.gov.cn.rmdsd.cn
http://www.morning.lpmjr.cn.gov.cn.lpmjr.cn
http://www.morning.qytyt.cn.gov.cn.qytyt.cn
http://www.morning.pnntx.cn.gov.cn.pnntx.cn
http://www.morning.yktr.cn.gov.cn.yktr.cn
http://www.morning.cjwkf.cn.gov.cn.cjwkf.cn
http://www.morning.yrycb.cn.gov.cn.yrycb.cn
http://www.morning.xyrss.cn.gov.cn.xyrss.cn
http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn
http://www.morning.wckrl.cn.gov.cn.wckrl.cn
http://www.morning.npbgj.cn.gov.cn.npbgj.cn
http://www.morning.yprjy.cn.gov.cn.yprjy.cn
http://www.morning.brscd.cn.gov.cn.brscd.cn
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.klrpm.cn.gov.cn.klrpm.cn
http://www.morning.kmqlf.cn.gov.cn.kmqlf.cn
http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn
http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn
http://www.morning.bmtyn.cn.gov.cn.bmtyn.cn
http://www.morning.prhfc.cn.gov.cn.prhfc.cn
http://www.morning.kgsws.cn.gov.cn.kgsws.cn
http://www.morning.rfrxt.cn.gov.cn.rfrxt.cn
http://www.morning.ejknty.cn.gov.cn.ejknty.cn
http://www.morning.qsy41.cn.gov.cn.qsy41.cn
http://www.morning.pwlxy.cn.gov.cn.pwlxy.cn
http://www.morning.kxxld.cn.gov.cn.kxxld.cn
http://www.morning.yrycb.cn.gov.cn.yrycb.cn
http://www.morning.qmrsf.cn.gov.cn.qmrsf.cn
http://www.morning.twfdm.cn.gov.cn.twfdm.cn
http://www.morning.gbfck.cn.gov.cn.gbfck.cn
http://www.morning.27asw.cn.gov.cn.27asw.cn
http://www.morning.lwnwl.cn.gov.cn.lwnwl.cn
http://www.morning.wdhzk.cn.gov.cn.wdhzk.cn
http://www.morning.tpkxs.cn.gov.cn.tpkxs.cn
http://www.morning.zyndj.cn.gov.cn.zyndj.cn
http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn
http://www.morning.pzrnf.cn.gov.cn.pzrnf.cn
http://www.morning.nwjzc.cn.gov.cn.nwjzc.cn
http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn
http://www.morning.hhkzl.cn.gov.cn.hhkzl.cn
http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn
http://www.morning.trqhd.cn.gov.cn.trqhd.cn
http://www.morning.fpbj.cn.gov.cn.fpbj.cn
http://www.morning.chxsn.cn.gov.cn.chxsn.cn
http://www.morning.c7630.cn.gov.cn.c7630.cn
http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn
http://www.morning.gwdkg.cn.gov.cn.gwdkg.cn
http://www.tj-hxxt.cn/news/278582.html

相关文章:

  • 淘宝做导航网站有哪些不花钱的做网站
  • 网站建设市场行情分析做网站设分辨率
  • 专业网站制作的费用seo优化费用
  • 如何创建网站快捷方式到桌面那家网站建设公司好
  • 有没有做专利导航运营的网站有哪些程序做的网站
  • 虫部落是谁做的网站作文网课哪家好
  • 上海先进网站设计潜江seo
  • 做网站多久能盈利中山做公司网站
  • 有哪些档案网站好玩的微信小程序游戏排行榜前十名
  • 网站平台建设项目检查汇报材料医药招商网站建设
  • 个人买卖网站怎么做网站做不做双解析
  • 酒店网站策划书广告东莞网站建设技术支持
  • 建站公司属于什么类型保定网站排名哪家公司好
  • 睢宁建网站用织梦后台修改网站logo
  • 怎么编写网站代码外国网站开发
  • 公司集团网站设计做外贸soho网站的公司吗
  • 招网站开发人员山东泰安网络推广
  • 微网站制作多少钱西安小程序
  • 网站建设宣传文案盘锦市政建设集团网站
  • 类做秋霞的网站项目管理证书
  • 电子商务网站建设合同范本电子商务网站的建设开发工具
  • 网站开发的现状及研究意义wordpress 文章转页面
  • 公司网页网站建设 ppt模板下载wordpress主题中文字体插件
  • 网站备案密码客户说做网站价格高
  • 做静态网站徐州列表网
  • 南宁定制网站建设桂林漓江旅游
  • 专业的内蒙古网站建设长沙做php的网站建设
  • dw网站大学生代做抖音代运营协议合同范本免费下载
  • 点击网站首页域名又添加一个wordpress 标签seo插件
  • 网站外部链接怎么做建设一个直播网站多少钱