<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go MachineryGo 異步任務(wù)隊(duì)列

          聯(lián)合創(chuàng)作 · 2023-09-29 13:37

          Machinery 是一個(gè) Go 語(yǔ)言的異步任務(wù)隊(duì)列和作業(yè)隊(duì)列,基于分布式消息傳遞。類似 Python 的 Celery 框架。

          Machinery 中的任務(wù)(或者作業(yè))可通過(guò)多個(gè) worker 在很多服務(wù)器上并發(fā)的執(zhí)行,或者可在單個(gè)服務(wù)器上利用 Go 的協(xié)程運(yùn)行多個(gè) worker 進(jìn)程。

          任務(wù)的定義:

          type AddTask struct{}
          
          func (t AddTask) Run(args []interface{}) (interface{}, error) {
              parsedArgs, err := machinery.ParseNumberArgs(args)
              if err != nil {
                  return nil, err
              }
          
              add := func(args []float64) float64 {
                  sum := 0.0
                  for _, arg := range args {
                      sum += arg
                  }
                  return sum
              }
          
              return add(parsedArgs), nil
          }
          
          type MultiplyTask struct{}
          
          func (t MultiplyTask) Run(args []interface{}) (interface{}, error) {
              parsedArgs, err := machinery.ParseNumberArgs(args)
              if err != nil {
                  return nil, err
              }
          
              multiply := func(args []float64) float64 {
                  sum := 1.0
                  for _, arg := range args {
                      sum *= arg
                  }
                  return sum
              }
          
              return multiply(parsedArgs), nil
          }
          
          // ... more tasks

          任務(wù)注冊(cè):

          tasks := map[string]machinery.Task{
              "add":      AddTask{},
              "multiply": MultiplyTask{},
          }
          app.RegisterTasks(tasks)


          瀏覽 19
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码色色| www视频免费看 | 国产一区黄色电影 | 翔田千里一区二区 | 亚洲男人天堂2025 |