2 个版本
0.1.1 | 2024 年 2 月 3 日 |
---|---|
0.1.0 | 2024 年 1 月 31 日 |
#11 in #hours
10KB
149 行 (不包括注释)
during
仅在特定时间运行命令的实用工具包装器
用法
需要一个指定允许运行作业时间的 timespec。timespec 的格式是一组以逗号分隔的字符串,例如 DDD[HH:MM-HH:MM(,HH:MM-HH:MM)]
。D 是一个数字,对应于 ISO 8601 的星期几(1-7,1 = 星期一,7 = 星期日),而方括号内是作业可以在指定日运行的小时/分钟范围。
默认情况下,使用您计算机的本地时间,但也可以指定任何时区。
例如,此调用允许命令 ./run.sh 在工作日 5pm 到 9pm PT 之外的时间运行,或在周末的任何时间运行。
during --tz US/Pacific --timespec 12345[00:00-17:00,21:00-00:00],67[00:00-00:00] ./run.sh
注意
如果范围以 00:00 结束,则表示为下一午夜。结束时间为 23:59 会导致作业在一天的最后一分钟终止。
范围是累加的。如果当前时间在任一给定范围内,则允许作业运行。
但为什么呢...?
在高峰电价期间,关闭长时间运行或耗电的作业,如加密货币挖掘或蛋白质折叠,可能会有所帮助。
大多数现有解决方案似乎都涉及使用类似 systemd 或 cron 之类的工具在特定时间向进程发送信号以停止或启动进程,但未包括防止服务在允许时间之外启动的逻辑。
依赖项
~4.5–6.5MB
~110K SLoC