Что нового

Алгоритм "захвата" файлов

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
У кого какие идеи как сделать следующее:
Есть 20 файлов и 20 копий скрипта, нужно сделать так, что бы эти 20 скриптов не обрабатывали один и тот же файл, каждый скрипт должен знать, что файл уже используется и взять следующий на обработку.
Вариант с переименованием файла не использовать.
Скрипты будут запущены примерно так:
Код:
For $i = 1 To 20
	Run('script.exe')
	Sleep(100)
Next
 

Kasper

Знающий
Сообщения
70
Репутация
8
Создать общение между процесами и там сообщать какой файл используется.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
получить список файлов и "раздавать" каждой копии процесса свой по списку. если все известно, то зачем делать дополнительную проверку. плюс обмен данными между процессами
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
inververs, у меня два вопроса:

  • Файл будет запускаться один и тот же или будет 20 файлов с разными именами?
  • Зачем вам нужен такой чудовищный алгоритм аж с 20 процессами?

Я это все к тому, что в 99% что-то здесь не то. Даже, если рассуждать с точки зрения быстродействия, то 2-3 параллельных процесса будет выгоднее, нежели 20 (не забываем, что в случае с AutoIt вся нагрузка ляжет на одно ядро).
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
joiner [?]
получить список файлов и "раздавать" каждой копии процесса свой по списку. если все известно, то зачем делать дополнительную проверку. плюс обмен данными между процессами
так не пойдет, каждый процесс, в конечном итоге, может обработать больше файлов, если будет более проворным. Так получится потому, что хоть мы и запускаем 20 копий процесса, но файлов может быть и 100 и больше. Прощу прощение, что в первом сообщение не указал это. И еще, тот кто будет запускать процессы не знает о количестве файлов, он знает лишь какой скрипт должен запустить.

Yashied [?]
Файл будет запускаться один и тот же или будет 20 файлов с разными именами?
один и тот же.

Зачем вам нужен такой чудовищный алгоритм аж с 20 процессами?
регистрация карт через http, нужно сделать это быстро, т.к 1 процесс регистрирует карту за минуту (с учетом пауз итп).

Даже, если рассуждать с точки зрения быстродействия, то 2-3 параллельных процесса будет выгоднее, нежели 20
Почему? 20 процессов за минуту сделают 20 карт, 2 - 3 за туже минуту 2 - 3 карты.
Процессы такие, что большую часть времени простаивают в ожидании (sleep) после каждого шага. В сумме же набирается около минуты.




Добавлено:
Сообщение автоматически объединено:

InnI,Garrett спасибо, посмотрю. Идея лочить файлы очень хороша.
 
Верх