用 Golang 跑「佇列任務」,也可以像 Laravel 一樣簡單

Bowens發表於2022-05-25

話說用 Golang 跑「佇列任務」需要幾步?使用 Goravel ,四步不能再多了!

第一步:生成任務類

go run . artisan make:job HelloWorld

任務類結構

package jobs

type HelloWorld struct {
}

//Signature The name and signature of the job.
func (receiver *HelloWorld) Signature() string {
  return "process_podcast"
}

//Handle Execute the job.
func (receiver *HelloWorld) Handle(args ...interface{}) error {
  return nil
}

第二步:註冊任務

註冊到 app/provides/queue_service_provider.go

func (receiver *QueueServiceProvider) Jobs() []queue.Job {
  return []queue.Job{
    &jobs.HelloWorld{},
  }
}

第三步:啟動佇列伺服器

在根目錄下 main.go 中啟動佇列伺服器

package main

import (
  "github.com/goravel/framework/support/facades"
  "goravel/bootstrap"
)

func main() {
  // This bootstraps the framework and gets it ready for use.
  bootstrap.Boot()

  // Start queue server by facades.Queue.
  go facades.Queue.Worker(queue.Args{}).Run()

  select {}
}

第四步:排程任務

err := facades.Queue.Job(&jobs.HelloWorld{}, []queue.Arg{}).Dispatch()

OK, Over. 更多功能詳見文件,基本用法與 Laravel 保持一致,小夥伴們開始愉快的搞事情吧!

關於 Goravel

Goravel 是一個功能完備、具有良好擴充套件能力的 Web 應用程式框架。 作為一個起始腳手架幫助 Golang 開發者快速構建自己的應用。

專案地址:github.com/goravel/goravel

文件地址:www.goravel.dev

0DkNTwOZmj.png!large

本作品採用《CC 協議》,轉載必須註明作者和本文連結
唯有所執,方有所成。

相關文章