Github Actions设置等待至6点运行
一, Preface
Gtihub Actions就相当于白送给我们的一个服务器, 我们可用来签到打卡, 甚至抢票! 这里我写了一个yml让它每天帮我跑一个main.py的程序。
二, 具体代码
每天等待至6点执行, 运行超过5分钟就跳过。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| name: Schedule
on: schedule: # 每天凌晨 5 点 54 分执行 - cron: "54 5 * * *"
jobs: run_program: runs-on: ubuntu-latest steps: - name: Wait until 6:00 AM run: | now=$(date +'%s') # 计算距离明天凌晨 6:00 AM 的秒数 next=$(( ($(date -d 'tomorrow 6:00' '+%s') - $now) % 86400 )) echo "Waiting ${next} seconds until 6:00 AM" # 判断等待时间是否超过 5 分钟 if [ $next -gt 300 ]; then echo "Waiting too long, exiting" exit 1 fi # 循环等待直到 6:00 AM 或者超时 while [ $next -gt 0 ]; do now=$(date +'%s') # 计算距离明天凌晨 6:00 AM 的剩余秒数 next=$(( ($(date -d 'tomorrow 6:00' '+%s') - $now) % 86400 )) # 计算下一次的等待时间 wait=$((next % 60 + 1)) if [ $next -le 0 ]; then break fi # 判断现在是否已经超过 6:00 AM if [ $(date +%H%M%S) -ge 060000 ]; then break fi sleep ${wait}s done - name: Run Python program run: python main.py #运行你想运行的代码
|