Показать сообщение отдельно
Старый 19.12.2003, 09:00     # 111
Premium
Junior Member
 
Регистрация: 04.04.2003
Сообщения: 181

Premium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форумеPremium Популярный человек на этом форуме
А как лучше всего "бороться" с тем, чтобы некоторые задачи не запускались одновременно? Если бы все проги относились к оперативке и ресурсам компа как nnCron и nnbackup... :-) , но это к сожалению не так, и есть задачи в кронтабах, при выполнении которых загрузка проца под 100% и практически невозможно чем-либо другим заняться . Тот же rar к примеру, пакует-обновляет у меня каждый день кучу файлов ~ в 300 Mb архив и пофиг ему какой у него приоритет и что он в фоновом режиме - грузит комп по полной схеме, особенно заметно, если машина не самая сильная. А таких задач, с запуском ресурсоемких приложений, у меня многовато и никак низзя, чтобы они одновременно запускались. Но если в опциях запуска стоит RunMissed (а оно обычно так и есть) и комп не запускал пару-тройку дней, то при старте системы nnCron ессно бросается выполнять все просроченные задачи сразу, что на быстродействии системы отражается не самым лучшим образом, а если комп - совсем смешной целерончик с 64 Mb ОЗУ и таким же смешным процем, есть у меня один такой, пишущая машинка, блин... :-) Каждый раз Rule: настраивать надоело, варьировать, что бы не было "этого" процесса, был "тот", да GetTickCount был таким то... В общем я пока в каждую ресурсоемкую задачу прописал в Rule не запускаться, если существует флаг-файл C:\active.flg и в начале запуска таких задач nnCron выбрасывает такой флаг-файлик, а по завершении задачи удаляет его, типа:

#( task_1
RunMissed
OnceAWeek
Time: * * * * 1 *
Rule: FILE-EXIST: "C:\active.flg" NOT
Action:
FILE-WRITE: "C:\active.flg" "%CUR-TASK-NAME%"
1000 PAUSE
\ тут делаем работу
START-APPW: "proga1.exe"
START-APPW: "proga2.exe"
\ и т.д.
\ по завершении работы удаляем флаг-файл
1000 PAUSE
FILE-DELETE: "C:\active.flg"
)#

#( task_2
RunMissed
OnceAWeek
Time: * * * * 1 *
Rule: FILE-EXIST: "C:\active.flg" NOT
Action:
FILE-WRITE: "C:\active.flg" "%CUR-TASK-NAME%"
1000 PAUSE
\ тут делаем работу
START-APPW: "proga3.exe"
START-APPW: "proga4.exe"
\ и т.д.
\ по завершении работы удаляем флаг-файл
1000 PAUSE
FILE-DELETE: "C:\active.flg"
)#

В общем task_1 и task_2 запустятся, только если нет флаг-файла C:\active.flg и сами же его и выбрасывают на время своей работы. Может есть более элегантное решение какое-нить? Например сложить все ресурсоемкие задачи в один кронтаб и если одна задача из этого кронтаба выполняется, то остальные ждут в сторонке? Только я не знаю, как это реализовать правда... Список всех задач из кронтаба в текстовой файл в столбик я знаю, как получить (vbscript написал такой, на Форте не знаю как делается), nnCron рядом может положить текстовой файл с именем выполняемой задачи
(FILE-WRITE: "current_task.txt" "%CUR-TASK-NAME%")
и как-нить сравнить их, что-ли? С Фортом не очень у меня честно говоря получается подружиться... Или от добра добро не ищут, так и продолжать выкидывать флаг-файл?
Premium вне форума