golang crontab每天午夜执行函数

时间:2019-03-04 20:51:30

标签: go

我想每天下午12:05使用此crontab库cronHandler.AddFunc("@midnight", func() { fmt.Println("crontab ping") } 执行功能。这是我当前的代码:

df = pd.DataFrame({'ID': ['ABC', 'DEF', 'ABC', 'DEF', 'ABC'], 'Values': [57, 72, 88, 43, 61]})
df['Quartile 1'] = 

Index ID    Values  Quartile_1
0     ABC     57    
1     DEF     72    
2     ABC     88    
3     DEF     43    
4     ABC     61

我如何每天凌晨03:00(时区+2)使用crontab执行我的功能?我的问题是服务器当前功能使用时区,第二个问题是该库在执行时不允许特定的特定时间。我该怎么做?

1 个答案:

答案 0 :(得分:0)

这可以通过cron库以及对代码的一些小调整来完成。

几件事:

  1. 在时区数据库的列表中找到您选择的时区,即here
  2. 将此时区加载到time.LoadLocation或使用time.FixedZone方法(如果.LoadLocation方法不适合您的情况下,请参见time docs了解有关可用方法的更多信息)
  3. 使用自定义定位方法NewWithLocation初始化Cron作业运行程序的新实例,请参见docs here
  4. 将第一个参数编辑为.AddFunc方法,以添加更详细的cron计划,用更具体的@midnight代替泛型0 5 * * * *代表每天12时:上午5点,或者在新的自定义位置替换为您所需的cron执行时间

下面的完整示例:

// pass in your specific zone name, using USA/LA as example
customLocation := time.LoadLocation("America/Los_Angeles")

// initialize new cron job runner with custom location
cronHandler := cron.NewWithLocation(customLocation)

// the 0/24th hour and 5th minute of every day
cronHandler.AddFunc("0 5 * * * *", func() {
    fmt.Println("crontab ping")
})