package main

import (
    "context"
    "fmt"
    "log"
    "net/http"

    "github.com/gin-gonic/gin"
    "github.com/hibiken/asynq"
)

// 定义任务类型常量
const (
    CheckStatusCodeTaskType  = "check:status_code"
    CheckStatusCodeTaskType2 = "check:buy_status_code"
)

// 任务处理函数:获取 https://free.iosapp.icu/ 的状态码
func handleCheckStatusCodeTask(ctx context.Context, t *asynq.Task) error {

    fmt.Println("1")
    return nil
}

func handleCheckStatusCodeTask2(ctx context.Context, t *asynq.Task) error {

    fmt.Println("2")
    return nil
}

func Client() {
    // 初始化 Asynq 客户端和队列
    client := asynq.NewClient(asynq.RedisClientOpt{Addr: "localhost:6379"})
    defer client.Close()

    // 定义任务:检查 https://free.iosapp.icu/ 状态码
    task1 := asynq.NewTask(CheckStatusCodeTaskType, nil)

    // 将任务添加到队列
    _, err := client.Enqueue(task1)
    if err != nil {
        log.Fatalf("Failed to enqueue task1: %v", err)
    }

}
func Client2() {
    // 初始化 Asynq 客户端和队列
    client := asynq.NewClient(asynq.RedisClientOpt{Addr: "localhost:6379"})
    defer client.Close()

    // 定义任务:检查 https://free.iosapp.icu/ 状态码
    task2 := asynq.NewTask(CheckStatusCodeTaskType2, nil)

    // 将任务添加到队列
    _, err := client.Enqueue(task2)
    if err != nil {
        log.Fatalf("Failed to enqueue task1: %v", err)
    }

}

func Server() {
    mux := asynq.NewServeMux()
    mux.HandleFunc(CheckStatusCodeTaskType, handleCheckStatusCodeTask)
    mux.HandleFunc(CheckStatusCodeTaskType2, handleCheckStatusCodeTask2)
    // 启动工作队列,等待处理任务
    server := asynq.NewServer(asynq.RedisClientOpt{Addr: "localhost:6379"}, asynq.Config{Concurrency: 10})
    if err := server.Run(mux); err != nil {
        log.Fatalf("Error starting server: %v", err)
    }

}

func main() {

    go Gin()

    // 设置任务处理函数和启动任务队列
    Server()

}

func Gin() {
    // 创建一个默认的 Gin 实例(带 Logger 和 Recovery 中间件)
    r := gin.Default()

    // 设置一个简单的路由
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "pong",
        })
        Client()

    })
    r.GET("/api", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "pong",
        })
        Client2()

    })

    // 启动服务器
    r.Run(":8080") // 默认监听 8080 端口
}

// 模拟并发数量为一千

每日更新-免费小火箭账号
不要错过任何机会,探索最新的应用和游戏,就在我们的平台。
立即访问
最后修改:2024 年 12 月 20 日
如果觉得我的文章对你有用,请随意赞赏