У нас здесь есть процесс, когда SAS создает входной файл. Этот входной файл затем читается унаследованным приложением, и это унаследованное приложение создает результаты. Затем SAS читает результаты и суммирует их. Непрограммист обычно заботится об этих действиях одно за другим. Таким образом, человек просто создает входной файл. Они знают, когда это будет сделано, а затем запускают устаревшее приложение и знают, когда это будет сделано. Затем они запускают сводную программу.
У меня есть ситуация, когда мой босс хочет запустить около 100 вариантов. У меня есть доступ к 3 или 4 компьютерам, которые используют общий сетевой диск. Вот мой план: используйте компьютер А, я начинаю создавать 100 входных файлов, один за другим. Используя компьютер B, я запускаю устаревшую программу для каждого входного файла. Я хотел бы запустить программу, когда ввод будет готов. Так что, если input1 уже создан на компьютере A, я хочу запустить устаревшее приложение на input1 на компьютере B, в то время как input2 создается на компьютере A. Я лучше знаю python, поэтому я, вероятно, буду использовать python, чтобы склеить все это вместе.
Теперь я знаю, что могу многое сделать, но я думаю, что этот подход является адекватным и позволит мне просто выполнить работу на данный момент. На самом деле у меня нет времени на разработку и тестирование очень элегантного решения, которое бы использовало все ядра на всех машинах или использовало базу данных, чтобы помочь мне синхронизировать все это. Я ценю такие предложения, , но я действительно просто хочу узнать, есть ли способ, в Python, сказать, открыт ли файл на сетевом диске для записи любым приложением на любом компьютере? Если нет Я, вероятно, просто придумаю тупой способ создать индикатор того, что работа выполнена - например, создать файл «doneA», где, если он существует, это означает, что файл «input1» завершен. Например. Я бы добавил шаг в программу sas, которая создает файл индикатора после создания входного файла.
Извините за очень длинное объяснение, но я просто не хочу, чтобы вы тратили время на альтернативные решения, которые я, вероятно, не смогу реализовать.
Я прочитал этот вопрос и ответы на него. Я не думаю, что могу использовать что-то вроде lsof b / c, эти файлы будут открыты на разных компьютерах.