Как получить порядковый номер запущенного инстанса в проекте?

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Здравствуйте! Вопрос у меня в заголовке. Чуть поясню. Когда в Zennoposter'e запускаем проект можно в его настройках указать во сколько потоков он будет выполняться. Если поставим 8 потоков, будет запущено 8 инстансов. У меня каждый инстанс берет из файла строку. Я хочу сделать чтобы каждый запущенный инстанс в проекте брал строку, которой соотв. его порядковый номер. Например запустился первый инстанс - он взял первую строку из файла, запустился следом 2 инстанс - взял 2 строку и так далее. Если первый инстанс завершается с ошибкой, то я хочу чтобы этот инстанс продолжил работу с соотв. его порядковому номеру строкой, а не с первой, например.
Подскажите, как это можно реализовать?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Я бы советовал искать другой подход. Такая логика сопряжена с приличным количеством трудностей, а её преимуществ я не вижу. Расскажешь, зачем тебе нужно именно так?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
вообще нет сопряжения
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Расскажешь, зачем тебе нужно именно так?
Представь себе, что у тебя на каком-то сервисе-проекте работает 50 или больше акков. Каждому акка поставлено в соотв. прокси. Прокси и логин-пароли забиты в файл. При запуске в Зеннопостере ставим выполнять 50 потоков. При выполнении из файла извлекается первая строка в переменную и тут же записывается в конец файла, и работает с извлеченными данными. Каждый последующий инстанс запускается, берет строку вначале, ставит в конец. Так до тех пор, пока не будет 50 инстансов. Работает 50 потоков, 50 аккаунтов. В какой-то момент инстанс №40 не нашел какой-нибудь элемент на странице и завершился с ошибкой и выполняется заново. Вот только берет он исходные данные по-прежнему из 1 строки, которая в данный момент соответствует 1 акка, который уже выполняется инстансом №1. А значит, теперь будет работать 2 инстанса с 1 аккаунтом. Со временем накапливаются ошибки и увеличиваются дубли.
Выход из этой ситуации - запустить 50 проектов, чтобы каждый из них брал данные из строго заданной строки, но очень неудобно мониторить 50 проектов, а в случае когда нужно подправить какую-то запятую в проекте - пересохранять 50 проектов. К тому же мне кажется в этом случае Зенка будет жрать больше ресурсов
Последовательный перебор аккаунтов в одном инстансе - не решение, потому что нужно мониторить постоянно одно событие и нельзя чтобы сбивался таймер.

Какое может быть альтернативное решение вопроса?
 
Последнее редактирование:

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Представь себе, что у тебя на каком-то сервисе-проекте работает 50 или больше акков. Каждому акка поставлено в соотв. прокси. Прокси и логин-пароли забиты в файл. При запуске в Зеннопостере ставим выполнять 50 потоков. При выполнении из файла извлекается первая строка в переменную и тут же записывается в конец файла, и работает с извлеченными данными. Каждый последующий инстанс запускается, берет строку вначале, ставит в конец. Так до тех пор, пока не будет 50 инстансов. Работает 50 потоков, 50 аккаунтов. В какой-то момент инстанс №40 не нашел какой-нибудь элемент на странице и завершился с ошибкой и выполняется заново. Вот только берет он исходные данные по-прежнему из 1 строки, которая в данный момент соответствует 1 акка, который уже выполняется инстансом №1. А значит, теперь будет работать 2 инстанса с 1 аккаунтом. Со временем накапливаются ошибки и увеличиваются дубли.
Выход из этой ситуации - запустить 50 проектов, чтобы каждый из них брал данные из строго заданной строки, но очень неудобно мониторить 50 проектов, а в случае когда нужно подправить какую-то запятую в проекте - пересохранять 50 проектов. К тому же мне кажется в этом случае Зенка будет жрать больше ресурсов
Последовательный перебор аккаунтов в одном инстансе - не решение, потому что нужно мониторить постоянно одно событие и нельзя чтобы сбивался таймер.

Какое может быть альтернативное решение вопроса?
Можно брать строку с данными с удалением, а возвращать назад не сразу, а после упешного (неуспешного) выполнения потока. Все - дублей не будет. Каждый инстанс работает только со своими данными!
 
  • Спасибо
Реакции: doc

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
тут вся фишка в высказывании дока )) всё что он сказал это закон и неоспаримо, но иногда такую бредячтину несёт что аж тошно бывает, док ты или людям отвечай по существу или примеры а то я устал если честно читать то что ты пишишь а тебе тупо за это лайки ставят, ты лаечник что ли )?? собрался выйти в презмиденты ? если нет вопрос к тебе куда тогда прёшь ?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Представь себе, что у тебя на каком-то сервисе-проекте работает 50 или больше акков. Каждому акка поставлено в соотв. прокси. Прокси и логин-пароли забиты в файл. При запуске в Зеннопостере ставим выполнять 50 потоков. При выполнении из файла извлекается первая строка в переменную и тут же записывается в конец файла, и работает с извлеченными данными. Каждый последующий инстанс запускается, берет строку вначале, ставит в конец. Так до тех пор, пока не будет 50 инстансов. Работает 50 потоков, 50 аккаунтов. В какой-то момент инстанс №40 не нашел какой-нибудь элемент на странице и завершился с ошибкой и выполняется заново. Вот только берет он исходные данные по-прежнему из 1 строки, которая в данный момент соответствует 1 акка, который уже выполняется инстансом №1. А значит, теперь будет работать 2 инстанса с 1 аккаунтом. Со временем накапливаются ошибки и увеличиваются дубли.
Выход из этой ситуации - запустить 50 проектов, чтобы каждый из них брал данные из строго заданной строки, но очень неудобно мониторить 50 проектов, а в случае когда нужно подправить какую-то запятую в проекте - пересохранять 50 проектов. К тому же мне кажется в этом случае Зенка будет жрать больше ресурсов

Какое может быть альтернативное решение вопроса?
Можно записывать строку в конец не сразу, а только по завершению проекта. Конечно. есть вероятность потерять данные авторизации при вылете зенно или краше компьютера, но это просто решается наличием копии списка
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
тут вся фишка в высказывании дока )) всё что он сказал это закон и неоспаримо, но иногда такую бредячтину несёт что аж тошно бывает, док ты или людям отвечай по существу или примеры а то я устал если честно читать то что ты пишишь а тебе тупо за это лайки ставят, ты лаечник что ли )?? собрался выйти в презмиденты ? если нет вопрос к тебе куда тогда прёшь ?
Я, пожалуй, облегчу жизнь нам обоим. Просто добавлю тебя в игнор и всё. Побесишься конечно какое-то время от отсутствия моего внимания, но переживёшь, думаю. Бывай, дружок)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Я, пожалуй, облегчу жизнь нам обоим. Просто добавлю тебя в игнор и всё. Побесишься конечно какое-то время от отсутствия моего внимания, но переживёшь, думаю. Бывай, дружок)
)) тупо слился )))
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
а игнорить это самая последняя слабость наверно, но это твоё желание и успехов тебе в новом году а я по своим делам пошёл, мне тут делать неченго с таким профессором ))) как нить покажу что я замутил
 
  • Спасибо
Реакции: Gor

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Веселый вы люди, ребята ))
Можно записывать строку в конец не сразу, а только по завершению проекта. Конечно. есть вероятность потерять данные авторизации при вылете зенно или краше компьютера, но это просто решается наличием копии списка
Хорошо. Проект завершается с ошибкой. Перезапуск инстанса. Откуда берем логин-пароль-прокси если этой строки уже и в файле-то нет?.. Или использовать BadEnd и как последнее слово инстанса записать их в первую строку? Тогда после запуска следующего инстанса после завершения текущего будет взята первая строка, которая нам и нужна? Во! кажется, это вариант, как думаете?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Веселый вы люди, ребята ))

Хорошо. Проект завершается с ошибкой. Перезапуск инстанса. Откуда берем логин-пароль-прокси если этой строки уже и в файле-то нет?.. Или использовать BadEnd и как последнее слово инстанса записать их в первую строку? Тогда после запуска следующего инстанса после завершения текущего будет взята первая строка, которая нам и нужна? Во! кажется, это вариант, как думаете?
не суть важно, в конец записывать или в начало. Главное, чтобы запись была и по бэд энду и по гуд энду. Аккаунты, которые в работе, в списке отображаться не будут. В списке будут только те, которые завершили работу, удачно или нет
 
  • Спасибо
Реакции: Gor

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Веселый вы люди, ребята ))

Хорошо. Проект завершается с ошибкой. Перезапуск инстанса. Откуда берем логин-пароль-прокси если этой строки уже и в файле-то нет?.. Или использовать BadEnd и как последнее слово инстанса записать их в первую строку? Тогда после запуска следующего инстанса после завершения текущего будет взята первая строка, которая нам и нужна? Во! кажется, это вариант, как думаете?
Я же писал что после успешного (неуспешного) выполнения записывать данные назад. Естественно нужен BadEnd для возврата данных назад при необработанных ошибках.
Суть не в том, куда писать в начало или в конец. Суть в том, что при таком подходе (с забором данных) не будет пересечений, и каждый инстанс будет работать со своими данными!
 
  • Спасибо
Реакции: Gor

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Спасибо, ребята, помогли разораться! Единственное просветите мою темноту, чем отличается нажатие кнопки Стоп от Прервать проект в Зеннопостере? Прерывается ,как я понял, сразу, а в случае нажатия Стоп - он до конца выполняется, чтобы в конце записалась строка с исходниками?
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Спасибо, ребята, помогли разораться! Единственное просветите мою темноту, чем отличается нажатие кнопки Стоп от Прервать проект в Зеннопостере? Прерывается ,как я понял, сразу, а в случае нажатия Стоп - он до конца выполняется, чтобы в конце записалась строка с исходниками?
Все верно. Прервать - проект обрывается не доработав до конца. Стоп - все работающие потоки выполняются до своего логического конца и дальше выполнение не идет!
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
стоп будет ожидать кончания выполнения текущих заданий, прерывание оборвёт выполнение. Поэтому я и говорил за потерю данных и резервный список.
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
А в каком случае тогда скрипт висит в постере без уменьшения количества выполняющихся потоков после прерывания? Или у меня просто криво руки стоят на шаблоны? Если так, покажите выпрямлялку )))
 

Enigma

Client
Регистрация
16.06.2017
Сообщения
187
Благодарностей
31
Баллы
28
Интересует тот же самый вопрос, который в названии темы.
Было бы очень удобно ориентироваться в некоторых моментах, чтобы не путаться. Реально ли получить порядковый номер?
 

anderson9

Client
Регистрация
02.06.2022
Сообщения
9
Благодарностей
0
Баллы
1
Подскажите, как узнать этот номер? что бы была возможность писать его в лог. Проект, по мере выполнения пишет в лог о том, о сём, что бы можно было вставить номер к сообщениям, ну и ориентироваться: что написано и что на картинке.
 

Вложения

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Подскажите, как узнать этот номер? что бы была возможность писать его в лог. Проект, по мере выполнения пишет в лог о том, о сём, что бы можно было вставить номер к сообщениям, ну и ориентироваться: что написано и что на картинке.
return instance.Port;
 

anderson9

Client
Регистрация
02.06.2022
Сообщения
9
Благодарностей
0
Баллы
1
Я в лог пишу через кубик оповещение, например.
НАчал это
делаю это
теперь делаю вот это
Подскажите, как к каждому сообщению добавить номер порта инстанса?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Я в лог пишу через кубик оповещение, например.
НАчал это
делаю это
теперь делаю вот это
Подскажите, как к каждому сообщению добавить номер порта инстанса?
сохранить в начале порт в переменную . Потом добавлять переменную в запись каждого оповещениЯ
 
  • Спасибо
Реакции: anderson9

anderson9

Client
Регистрация
02.06.2022
Сообщения
9
Благодарностей
0
Баллы
1
сохранить в начале порт в переменную . Потом добавлять переменную в запись каждого оповещениЯ
я писал название кубика, так что окончание Е )) вроде разобрался, спасибо
 

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