Для этого вы можете использовать файл блокировки. Когда задача выполняется, попробуйте захватить блокировку и запустить задачу рейка, если вы получите блокировку. Если вы не получите блокировку, тогда не используйте rake; вам может понадобиться зарегистрировать ошибку или предупреждение где-то слишком, или вы можете закончить свою задачу рейка, не делая ничего в течение недель или месяцев, прежде чем вы об этом узнаете. Когда рейк выйдет, откройте файл блокировки.
Что-то вроде RAA может помочь, но я не использовал его, возможно, нет.
Вы также можете использовать PID-файл. У вас будет файл где-нибудь, в котором содержится идентификатор процесса rake process. Перед запуском рейка вы читаете PID из этого файла и смотрите, работает ли этот процесс; если он не запускает рейк и записывает его PID в файл PID. Когда rake существует, удалите PID-файл. Вы хотите объединить это с блокировкой в PID-файле, если хотите быть очень строгим, но это зависит от вашей конкретной ситуации.
спасибо очень много. – www
'flock' вы можете попробовать:] – gonjay