我有一个 bash 脚本,它每 10m 运行一次cron
。该脚本对某些值(比如变量 x=value)执行昂贵的计算。我需要“缓存”这个值 2-3 小时。这个问题有哪些可能的解决方案?
我试过memcached,但它似乎不能很好地与 bash 配合使用。
编写第二个脚本来进行实际计算并将结果保存到文件中:
# calculate $curval
printf '%s' "$curval" > /var/foo/value.txt
Run Code Online (Sandbox Code Playgroud)
安排它cron
每 2-3 小时运行一次。
在“每 10 分钟”脚本中,只需从文件中读取当前值:
curval=$(< /var/foo/value.txt)
Run Code Online (Sandbox Code Playgroud)
如果value.txt
文件不存在,一个很好的改进是从“每 10 分钟”脚本调用计算脚本。crontab
如果缺少条目,您甚至可以让它添加条目。