1

Beego の管理タスク ページで、タスク スペックを表示して [実行] ボタンを機能させるには? 実行ボタンが機能していないようでhttp://localhost:8888/task?taskname=、タスク名なしでリンクするだけです。

理由はありますか?以下はタスクの私のコードです:

tk1 := toolbox.NewTask("task1", "0/10 * * * * * ", func() error {
    fmt.Printf("task1 task ran at: %s\n", time.Now())
    return nil
})

toolbox.AddTask("task1", tk1)
toolbox.StartTask()
defer toolbox.StopTask()
4

1 に答える 1

0

同期の問題である可能性があります ( AddTask/StartTaskステップの後に待機/遅延がない)。
で定義されている方法でいくつかのタスクを定義すると、toolbox/task_test.goよりうまく機能するかどうか試してみてください。

func TestSpec(t *testing.T) {
    wg := &sync.WaitGroup{}
    wg.Add(2)
    tk1 := NewTask("tk1", "0 12 * * * *", func() error { fmt.Println("tk1"); return nil })
    tk2 := NewTask("tk2", "0,10,20 * * * * *", func() error { fmt.Println("tk2"); wg.Done(); return nil })
    tk3 := NewTask("tk3", "0 10 * * * *", func() error { fmt.Println("tk3"); wg.Done(); return nil })

    AddTask("tk1", tk1)
    AddTask("tk2", tk2)
    AddTask("tk3", tk3)
    StartTask()
    defer StopTask()

    select {
    case <-time.After(200 * time.Second):
        t.FailNow()
    case <-wait(wg):
    }
}

func wait(wg *sync.WaitGroup) chan bool {
    ch := make(chan bool)
    go func() {
        wg.Wait()
        ch <- true
    }()
    return ch
}
于 2015-01-13T18:26:56.487 に答える