我使用的是golang狂歡,我需要每個月的第一個星期一運行一個工作,這個石英克朗規範看起來像這樣: 0 0 0? 1/1 MON#1Golang Revel Job spec每個月的第一個星期一
但robfig/cron不接受這樣的規範,因此既不是狂歡/工作。 任何人都知道我該如何解決[使用陶醉工作]?
我使用的是golang狂歡,我需要每個月的第一個星期一運行一個工作,這個石英克朗規範看起來像這樣: 0 0 0? 1/1 MON#1Golang Revel Job spec每個月的第一個星期一
但robfig/cron不接受這樣的規範,因此既不是狂歡/工作。 任何人都知道我該如何解決[使用陶醉工作]?
對我來說,最簡單的解決辦法是這樣的:
func (e SomeStruct) Run() {
t := time.Now().Local()
day_num, _ := t.Day()
if day_num <= 7 {
fmt.Println("Hello, playground")
}
}
func init() {
revel.OnAppStart(func() {
jobs.Schedule("0 0 * * 1", SomeStruct{})
})
下,你根本運行作業每星期一,但在工作本身,檢查它的第一個星期一,你實際上做任何事情之前。可能有一個更好的方法(對Revel不太熟悉),但是縱觀他們的工作如何工作,這會起作用,並不像它會成爲性能問題。
要在一個月檢查的第一個星期一,
package main
import (
"fmt"
"time"
)
func IsFirstMonday() bool {
t := time.Now().Local()
if d := t.Day(); 1 <= d && d <= 7 {
if wd := t.Weekday(); wd == time.Monday {
return true
}
}
return false
}
func main() {
fmt.Println(IsFirstMonday())
}