做后台开发的同学都知道,我们可以写好各种脚本(shell, python, php, etc.),然后运用 Linux 的定时任务(crontab),让这个脚本可以按照配置的时间定时的跑起来。
但尤其困扰的一个问题就是,当脚本执行的任务比较耗时而且定时任务的启动周期又很短的时候,就会出现一个任务在同一时间内在多个进程中执行。如果控制得不好,这种并发效果,就会让你的代码执行到意想不到的效果,造成的后果就有毁坏数据,变成僵尸进程之类的烦心事。
那么,为了避免这种情况的发生,可以采取什么办法呢?
很好,我在想也许发明出锁这种东西的前辈一定没想到,计算机里面也有性质一致的锁。这就是我们今天要讲的主角——文件锁(flock)。
TBD