Многопоток. Как узнать с какими аккаунтами работают другие потоки.

  • Автор темы Автор темы Duser
  • Дата начала Дата начала

Duser

Client
Регистрация
11.08.2013
Сообщения
324
Реакции
224
Баллы
43
Здравствуйте. Нужна помощь.

Есть шаблон, работает в многопотоке. Мне нужно, что бы каждый поток работал со своим аккаунтом. Брать данные аккаунта из списка, привязанного к файлу с удалением, мне не подойдёт. Так как работа может завершится ошибкой в любой момент, не дойдя до конца.

Мне нужно как-то получить, допустим список имейлов, к которым привязаны Акки с которыми работают другие потоки. Или просто список потоков и в каждом потоке и-мейл с которым он работает.

Понятно объяснил? Можно на си шарпе. Только поподробней, я не профи в этом языке.
 
завершится ошибкой в любой момент, не дойдя до конца
По BadEndу сохраняй назад в список.
Либо же 1е действие - берешь и удаляешь акк, 2-е - записываешь в конец, 3-е - все остальное
 
более простой способ с удалением и записью тебе не подходит, зато какой-то невероятный, с контролем всех потоков, тебе подходит)
 
С бэдэндом не удобно. Да он у меня и не всегда срабатывает почему-то.
 

И что это даст? В конце, когда акков будет мало. Следующий поток залезет в чужой акк.

Все равно должен быть более изящный способ, подступится к данным других потоков. Не поверю, что нет.
 
В БД ханить аккаунты и данные к ним. А уже к записи в БД у акаунта вносить пометку что аккаунт занят. Дальше уже по логике, брать из БД первый свободный аккаунт.
 
В БД ханить аккаунты и данные к ним. А уже к записи в БД у акаунта вносить пометку что аккаунт занят. Дальше уже по логике, брать из БД первый свободный аккаунт.

Ок. Поток схлопнулся. В БД пометка, что акк занят. Что уберёт эту пометку, что бы следующий поток начал его использовать? Можно и без БД, а в CommonCode объявить статический список аккаунтов. Его будут видеть все потоки. Ну так всё равно ж оттуда надо как-то убрать акк, завершившийся ошибкой.
 
С бэдэндом не удобно. Да он у меня и не всегда срабатывает почему-то.
Бери, удаляй и записывай в конец.
Самое оптимальное.
И если у тебя 100 акков, то запускай на 100 выполнений, тогда по кругу не пойдет

PS оффтопный
@one , мужик, смени аватарку на прошлого милого котейку, а то от этой как то грустно на душе... =)
 
Ок. Поток схлопнулся. В БД пометка, что акк занят. Что уберёт эту пометку, что бы следующий поток начал его использовать? Можно и без БД, а в CommonCode объявить статический список аккаунтов. Его будут видеть все потоки. Ну так всё равно ж оттуда надо как-то убрать акк, завершившийся ошибкой.
вместо статуса можно иметь поле с датой принудительного освобождения. И брать аккаунты, на которых эта дата достигнута
 
вместо статуса можно иметь поле с датой принудительного освобождения. И брать аккаунты, на которых эта дата достигнута
ну и аккаунты, у которых null в дате. этот же null прописывать, когда аккаунт отработает.
 
С бэдэндом не удобно. Да он у меня и не всегда срабатывает почему-то.
Да, есть моменты когда по какой то причине беденд не получает шаблон. Один из них это если в ручную прервать работу шаблона. Другие пока не могу отловить, но периодически эти моменты появляются.

Может стоит разработчиков попросить подправить функционал беденда? При любом раскладе, если ошибка, всегда заканчивать по беденду если он есть.
 
не понятно - почему тебя не устраивает вариант - взятие строки и сразу же запись такой же строки - в конец списка, если зафиксирована блочина - то удаление строки содержащей текст. чтобы не юзать задействованны акк - можно для каждого файла предусмотреть создание файла с именем - логин акка - в котором будет статус- активен не активен и включать в работу только если не активен либо переходить к следующей строке, т.е. можно и без бд обойтись... может я просто не до конца понял Вашу задачу
 
А по конкретней?
dIujx0U.png


Если сделать вот так то другой поток не сможет взять акк который сейчас в работе
 
  • Оценить
Реакции: arhip1985
dIujx0U.png


Если сделать вот так то другой поток не сможет взять акк который сейчас в работе
прикольно) но человек писал, что бед энд не всегда срабатывает, а так - классно
 
А что будет происходить с файлом, если скажем на старте к нему обратьтся несколько потоков. Или же не бедэнде и гудэнде?
 
А что будет происходить с файлом, если скажем на старте к нему обратьтся несколько потоков. Или же не бедэнде и гудэнде?
так он залочен должен быть
 
зеннопостер должен лочить файл, когда работаешь в многопотоке, вроде так
Должен, но насколько я знаю в работе с файлами в многопотоке в какой то период начинается чехорда с данными которые пишутся в эти файлы. Возможно я ошибаюсь и делал работу с файлами как то не совсем корректно для работы с многопотоком. По крайне мере, все примеры что есть на форуме мне не помогали.
 

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