Многопоток при запуске "По сигналу"

alex345

Client
Регистрация
04.05.2021
Сообщения
72
Благодарностей
2
Баллы
8
При запуске проекта "По сигналу", проект запускается 1 раз и далее надо ждать завершения проекта что бы запустился следующий. У меня файл который запускает проект содержит номера профилей, которые нужно исполнить. Естественно я заранее не могу знать сколько попыток нужно делать, но точно минимум 1. Вот как сделать так, что бы планировщик запускал проект, пока этот файл не будет удалён, ну или как минимум, что бы он запускал проект, когда этот файл появляется и так каждый раз. А не ждал, пока завершиться уже начатый. Какой тогда вообще смысл от многопотока с таким планировщиком???
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
При запуске проекта "По сигналу", проект запускается 1 раз и далее надо ждать завершения проекта что бы запустился следующий. У меня файл который запускает проект содержит номера профилей, которые нужно исполнить. Естественно я заранее не могу знать сколько попыток нужно делать, но точно минимум 1. Вот как сделать так, что бы планировщик запускал проект, пока этот файл не будет удалён, ну или как минимум, что бы он запускал проект, когда этот файл появляется и так каждый раз. А не ждал, пока завершиться уже начатый. Какой тогда вообще смысл от многопотока с таким планировщиком???
ну так в самом шаблоне напиши логику по увеличению потоков. ты же разработчик, а значит все можешь сделать так как тебе надо.
 

alex345

Client
Регистрация
04.05.2021
Сообщения
72
Благодарностей
2
Баллы
8
ну так в самом шаблоне напиши логику по увеличению потоков. ты же разработчик, а значит все можешь сделать так как тебе надо.
Спасибо кэп, ты помог мне в очередной раз! Что бы я без тебя делал! Пожалуйста в следующий раз просто проигнорируй моё сообщение.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
  • Спасибо
Реакции: Alexmd

Viking01

Client
Регистрация
19.08.2017
Сообщения
228
Благодарностей
151
Баллы
43
Два варианта:
- в планировщике добавляй N попыток выполнения при запуске. В настройках проекта указать, сколько одновременно может выполняться потоков. А в шаблоне на входе проверку, надо выполнять или нет. Тогда из 100 попыток 70 отработает одновременно если надо, и 30 к примеру сразу завершит как излишние.
- можно из кода в шаблоне - на входе делать проверку сколько файлов = сколько добавить попыток выполнения = после такой проверки все нужные потоки запустятся сразу.

А вообще для многопотока лучше использовать базу какую нить, mysql/sqlLite, а не костыли с файлами и локами.
Проект запустился = получил количество актуальных заданий = добавил попыток выполнения своему шаблону = один пошел отрабатывать сам, остальные задания подхватят другие экземпляры.
 
  • Спасибо
Реакции: alex345

alex345

Client
Регистрация
04.05.2021
Сообщения
72
Благодарностей
2
Баллы
8
Два варианта:
- в планировщике добавляй N попыток выполнения при запуске. В настройках проекта указать, сколько одновременно может выполняться потоков. А в шаблоне на входе проверку, надо выполнять или нет. Тогда из 100 попыток 70 отработает одновременно если надо, и 30 к примеру сразу завершит как излишние.
- можно из кода в шаблоне - на входе делать проверку сколько файлов = сколько добавить попыток выполнения = после такой проверки все нужные потоки запустятся сразу.

А вообще для многопотока лучше использовать базу какую нить, mysql/sqlLite, а не костыли с файлами и локами.
Проект запустился = получил количество актуальных заданий = добавил попыток выполнения своему шаблону = один пошел отрабатывать сам, остальные задания подхватят другие экземпляры.
Благодарю! Хотел без дополнительного кода обойтись, средствами планировщика
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113
Можно создать ещё один шаблон, который как раз будет запускаться с помощью планировщика, после запуска считывает количество строк в файле и динамически создаёт bat-файл на запуск основного шаблона с необходимым числом потоков и попыток выполнения, после чего выполняет этот bat-файл.
 

alex345

Client
Регистрация
04.05.2021
Сообщения
72
Благодарностей
2
Баллы
8
Можно создать ещё один шаблон, который как раз будет запускаться с помощью планировщика, после запуска считывает количество строк в файле и динамически создаёт bat-файл на запуск основного шаблона с необходимым числом потоков и попыток выполнения, после чего выполняет этот bat-файл.
Да я сделал, внутри кода проверяю есть ли строки в файле, сколько их, да тупо количество попыток увеличиваю на количество строк, SetTries(Guid,Int32) Method . Я просто изначально хотел исключительно планировщиком обойтись, просто удивился, почему этого нет, тем более есть галка, что файл удалять не надо
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)