Help me please. Номер потока - как узнать?

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
392
Благодарностей
167
Баллы
43
Здравствуйте форумчане!)
Возможно ли в зенке узнать цифру потока.
Например : запускается проект без браузера на запросах,ставлю 10 потоков и 10 попыток,мне нужно вернуть именно 1 поток то есть в проекте прописано если это 1 поток то выполнит авторизацию если же 2,3 и т.д. то выполнит другие действия.
Возможно вернуть цифру потока или нет?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 927
Благодарностей
6 389
Баллы
113
если правильно понял, то проще сделать файл конфига, куда первый поток будет прописывать нужное значение, а остальные потоки проверять это значение на наличие.
то есть если первый поток ставит 1, и остальные видят что 1 уже есть, значит авторизацию не проходят.

не проще это все делать на профилях?
если профиль загружен значит все ок, если нет, значит логинимся
 
  • Спасибо
Реакции: TIIGR, Gulid и Vlad_Curnoi

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
392
Благодарностей
167
Баллы
43
если правильно понял, то проще сделать файл конфига, куда первый поток будет прописывать нужное значение, а остальные потоки проверять это значение на наличие.
то есть если первый поток ставит 1, и остальные видят что 1 уже есть, значит авторизацию не проходят.

не проще это все делать на профилях?
если профиль загружен значит все ок, если нет, значит логинимся
Спасибо,подобная реализация конечно хороша,но не хочется использовать кучу списков.
Именно интересно решение с получением потока
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 927
Благодарностей
6 389
Баллы
113
Дак, а какие списки, всего один файл конфига и все, от туда берется просто инфа и чекается, списков вообще нет, ну у меня без списков )
а в будущем конфиг можно расширять как угодно, очень удобно
 
  • Спасибо
Реакции: TIIGR и Gulid

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 248
Благодарностей
5 848
Баллы
113
Думаю, что через глобальную переменную счетчик это можно реализовать.
В каждом потоке наращивать номер, брать значение в текущем потоке и от номера плясать.

P.S. Выделение красным в подписи запрещено правилами.
 

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
392
Благодарностей
167
Баллы
43
Думаю, что через глобальную переменную счетчик это можно реализовать.
В каждом потоке наращивать номер, брать значение в текущем потоке и от номера плясять.

P.S. Выделение красным в подписи запрещено правилами.
Так розовый цвет вроде
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Я каждый раз прохожу круги ада, когда мне нужно сделать, что бы 1 поток делал одно, а другие ждали. Ладно сделал. Потом оказалось, что после завершения работы глобалка уже не "0" как в начале, а 51. Хорошо, сделали обнуление после успешного завершения проекта. Но....

Если завершил проект принудительно, то переменная не обнуляется.
А если случайно упадет главный поток ну который "0", тогда вобще будет печально, ведь он отвечает за обработку списка в конце шаблона.

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

Как то так.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 248
Благодарностей
5 848
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
Я каждый раз прохожу круги ада, когда мне нужно сделать, что бы 1 поток делал одно, а другие ждали. Ладно сделал. Потом оказалось, что после завершения работы глобалка уже не "0" как в начале, а 51. Хорошо, сделали обнуление после успешного завершения проекта. Но....

Если завершил проект принудительно, то переменная не обнуляется.
А если случайно упадет главный поток ну который "0", тогда вобще будет печально, ведь он отвечает за обработку списка в конце шаблона.

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

Как то так.
Логика должна выстраиваться так, что любой поток может выполнять весь функционал по ситуации. Не получилось у первого, получится у второго
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 927
Благодарностей
6 389
Баллы
113
Что с этим делать я не знаю
я делаю 2 проверки, на случай стандартный и не стандартный, не стандартный как раз ошибка или принудительное закрытие, потоки записываю свой лог, после чего их легко отследить, и перенастроить. Сам поток перенастраивается. Но единственный минус, что для любого случая нужно писать логику-проверку, но оно того стоит. Чтоб потом не заниматься проектом 8 месяцев, а он будет работать и нести денюшку :-)
огика должна выстраиваться так, что любой поток может выполнять весь функционал по ситуации. Не получилось у первого, получится у второго
+
 
  • Спасибо
Реакции: TIIGR и Gulid

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Логика должна выстраиваться так, что любой поток может выполнять весь функционал по ситуации. Не получилось у первого, получится у второго
Допустим сделали еще одну глобалку, которая пишет Good. Нулевой поток ее назначает при завершении шаблона. Остальные потоки после паузы проверяют регуляркой наличие слова Good, если в течении 3-5 минут Good так и не появляется, то потоки выходят из цикла и назначают Good, кто первый успел тот и молодец. Остальные как увидели Good завершают работу.
Если только так, только наверно глобалку лучше залочить и не забыть поставить ее обнуление в начале шаблона.
Такой вариант подойдет?)

Сам поток перенастраивается.
Искусственный интеллект в действии?))
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 927
Благодарностей
6 389
Баллы
113
  • Спасибо
Реакции: TIIGR, Gulid и Mikhail B.

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
Допустим сделали еще одну глобалку, которая пишет Good. Нулевой поток ее назначает при завершении шаблона. Остальные потоки после паузы проверяют регуляркой наличие слова Good, если в течении 3-5 минут Good так и не появляется, то потоки выходят из цикла и назначают Good, кто первый успел тот и молодец. Остальные как увидели Good завершают работу.
Если только так, только наверно глобалку лучше залочить и не забыть поставить ее обнуление в начале шаблона.
Такой вариант подойдет?)


Искусственный интеллект в действии?))
Ты можешь делать всё в одной глобалке. один поток пишет в неё что-то типа processing|дата. Остальные проверют, если процессинг - смотрят дату. Если дата уже наступила - значит что-то пошло не так и поток 1й не справился, тогда другой поток занимает его место и прописывает новую дату.
 
  • Спасибо
Реакции: Mikhail B.

martens

Client
Регистрация
27.07.2015
Сообщения
97
Благодарностей
3
Баллы
8
Я каждый раз прохожу круги ада, когда мне нужно сделать, что бы 1 поток делал одно, а другие ждали. Ладно сделал. Потом оказалось, что после завершения работы глобалка уже не "0" как в начале, а 51. Хорошо, сделали обнуление после успешного завершения проекта. Но....

Если завершил проект принудительно, то переменная не обнуляется.
А если случайно упадет главный поток ну который "0", тогда вобще будет печально, ведь он отвечает за обработку списка в конце шаблона.

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

Как то так.
Такая же проблема, целый день думаю как реализовать, чтоб ДОСТОЙНО выглядело, на продажу даже софт сделать.
Не будешь же клиентам говорить:
"Ой, а после принудительной остановки нужно перезагрузить Зенку обязательно, и плевать мне что у вас там другие проекты могут работать в это время.."
Или "Перед запуском обязательно в текстовом файле пропишите нолик)"
Не нашли решение этой проблемы?
 
Последнее редактирование:

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Такая же проблема, целый день думаю как реализовать, чтоб ДОСТОЙНО выглядело, на продажу даже софт сделать.
Не будешь же клиентам говорить:
"Ой, а после принудительной остановки нужно перезагрузить Зенку обязательно, и плевать мне что у вас там другие проекты могут работать в это время.."
Или "Перед запуском обязательно в текстовом файле пропишите нолик)"
Не нашли решение этой проблемы?
Да никак. Я сделал обнуление в конце работы. А если шаб падает или завершается неудачей, то есть настройка во входных "Обнулить переменную".
 

martens

Client
Регистрация
27.07.2015
Сообщения
97
Благодарностей
3
Баллы
8
Да никак. Я сделал обнуление в конце работы. А если шаб падает или завершается неудачей, то есть настройка во входных "Обнулить переменную".
Во "Входных настройках" и BotUI вроде нет возможности глобальные переменные засовывать, у меня получалось только "местные".
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Во "Входных настройках" и BotUI вроде нет возможности глобальные переменные засовывать, у меня получалось только "местные".
Ты просто делаешь if если True обнуляеешь, если нет, то нет.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
Во "Входных настройках" и BotUI вроде нет возможности глобальные переменные засовывать, у меня получалось только "местные".
такая возможность не имеет смысла
 

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