Помогите понять почему проект выполняется не правильно

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Здравствуйте коллеги )
Ситуация следующая я создал проект по редактированию новостей у себя на сайте логин и пароль берется из файла в таблицу галочки выставлены сохранить и удалить, по окончании проекта идет сохранение логина и пароля обратно и на этом все. Запускаю проект все идет как нужно но в какой то момент вижу вот такое дело один из проектов выполняется видимо не полностью т.к. нет никакого уведомления просто информация о выполнении так происходит не часто но бывает самое интересное что этот проект получается не выполнился до конца и не сохранил логин и пароль а взять взял и в конце концов из за этого фаил с паролями становится пустой . Подскажите кто с таким сталкивался что это может быть
 

Reactor3000

Client
Регистрация
25.09.2019
Сообщения
434
Благодарностей
262
Баллы
63
Сделайте сохранение логина и пароля назад в конец списка следующий действием после того, как вы его берете
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Тогда следующий поток сможет его взять и будет ошибка сохранения новости т.к. два потока будут под одним юзером заходить
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
548
Баллы
93
Подскажите кто с таким сталкивался что это может быть
Нужно в lock обернуть каждый код, отвечающий за взятие строки из документа и сохранения строки обратно.

C#:
lock(SyncObjects.ListSyncer) {
// .. Тут код, который работает с текстовым файлом.
}
 
  • Спасибо
Реакции: id0777

Reactor3000

Client
Регистрация
25.09.2019
Сообщения
434
Благодарностей
262
Баллы
63
Тогда следующий поток сможет его взять и будет ошибка сохранения новости т.к. два потока будут под одним юзером заходить
Он будет в конце файла. Не запускайте потоков больше, чем у вас аккаунтов.
Либо совет выше
 
  • Спасибо
Реакции: id0777

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
попробую спасибо за совет , а по поводу
lock
можно подробнее что это и зачем
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
548
Баллы
93
можно подробнее что это и зачем
Если шаблон работает в многопотоке, необходимо оборачивать все взаимодействия с внешними файлами, за исключением случаев простого чтения файлов.
Если же берешь с удалением или добавляешь строку, то нужно лочить. В противном случае два+ потока одновременно могут совершить действие с файлом и в итоге информация будет утеряна.
 
  • Спасибо
Реакции: id0777

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 697
Баллы
113
попробую спасибо за совет , а по поводу
lock
можно подробнее что это и зачем
лок запрещает обращение к ресурсу внешним источникам. пока действует лок изменять залокированные данные сможет только один поток. соответственно в каждом потоке надо организовывать проверки доступности нужного ресурса.
 
  • Спасибо
Реакции: id0777

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Так еще раз вот у меня есть таблица в проекте в которой я указал
- загружать из файла
- сохранять изменения в фаил
- оставлять пустой фаил
Как я понял проблема возникает тогда когда два потока одновременно обращаются к этой таблице что приводит к тому что один поток завершает работу хотя непонятно почему главное он же успевает взять логин и пароль и завершиться

Так вот как это дело обернуть ?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 697
Баллы
113
завершить работу поток может по любой причине. в зенке работа с браузером носит рандомный характер. как залочить не подскажу не разбирался с локами.
без локов и в многопотоке не получиться избежать колизий. даже если брать и тут же в конец сохранять данные, то это абсолютно не гарантирует верность записи, так как зенка синронизирует таблицы в фоне в паралельном режиме. и даже самая шустрая настройка дает где то 5 сек. на запись. а в эти 5 сек. может много лишних потоков вклиниться.
вывод один, изучить и настроить тему локов :-)
 

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
Может кто еще знает или объясните мне как новичку я разобрался как работать со списком на данном этапе уже хорошо ) еще вопрос есть два варианта подключения списка к файлу
1 - подключение в настройках
2- через кубик
Кто знает как работает первый способ т.е. когда именно начинается подключение к файлу при первом запуске после START ?
далее прочитал на форуме что lock в кубике уже штатно идет попробовал поставить кубики привязки и сохранение и всеравно происходит тоже самое далее убрал все привязки к файлу работаю через список внутри и тоже самое есть моменты когда проект завершается сам собой кто знает в чем может быть причина такого поведения что то мне это не нравится
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 697
Баллы
113
Может кто еще знает или объясните мне как новичку я разобрался как работать со списком на данном этапе уже хорошо ) еще вопрос есть два варианта подключения списка к файлу
1 - подключение в настройках
2- через кубик
Кто знает как работает первый способ т.е. когда именно начинается подключение к файлу при первом запуске после START ?
далее прочитал на форуме что lock в кубике уже штатно идет попробовал поставить кубики привязки и сохранение и всеравно происходит тоже самое далее убрал все привязки к файлу работаю через список внутри и тоже самое есть моменты когда проект завершается сам собой кто знает в чем может быть причина такого поведения что то мне это не нравится
проект завершается сам собой.... это замечательно же.... гораздо хуже когда проект тупо зависнет и ни как его не снять, только перезагруз всей зенки помогает.
а вообще что то же должно писаться в лог шаблона ? ну там ошибки какие ? если выходит без ошибок, тогда логику надо смотреть, поставь в значимых местах шаблона оповещения, типа "ага ! я щас вот тут выполняюсь - а вот эта переменная такого цвета :-) " :-) я когда начинал весь шаблон такими оповещениями утыкивал :-) да и щас не гнушаюсь.
а еще есть трасировка проекта, ее включаешь и потом по кодам последних кубиков можно узнать куда твой шаблон урулил :-)
а причин может быть миллион, вплоть до - звезды не сошлишь :-)
во погляди небольшой список ошибок выполнения проектов. простые кликеры.
C#:
04.11.2019 11:49:29 : Задание 111111 : Шаблон 4 : Нет элемента капчи и нет изменения URL
04.11.2019 11:52:52 : Задание 111111 : Шаблон 38 : Нет элемента капчи и нет изменения URL
04.11.2019 12:09:43 : Задание 111111 : Шаблон 15 : Элемент пустой
04.11.2019 13:27:38 : Задание 111111 : Шаблон 2 : Нет элемента капчи и нет изменения URL
04.11.2019 14:24:46 : Задание 111111 : Шаблон 3 : Элемент пустой
04.11.2019 14:38:07 : Задание 111111 : Шаблон 28 : Нет элемента капчи и нет изменения URL
04.11.2019 14:58:30 : Задание 111111 : Шаблон 29 : Нет элемента капчи и нет изменения URL
04.11.2019 16:00:35 : Задание 111111 : Шаблон 3 : Координаты элемента неправильные
04.11.2019 16:06:56 : Задание 111111 : Шаблон 23 : Элемент пустой
04.11.2019 16:19:00 : Задание 111111 : Шаблон 4 : Нет элемента капчи и нет изменения URL
04.11.2019 16:40:35 : Задание 111111 : Шаблон 44 : Завершение шаблона по Bad End : Сообщение исключения: Некорректная капча : ID кубика: 46b22505-c177-4399-b950-1bebd4a226ed : Название кубика:
04.11.2019 16:40:44 : Задание 111111 : Шаблон 18 : Счетчик не найден
04.11.2019 16:56:38 : Задание 111111 : Шаблон 3 : Координаты элемента неправильные
04.11.2019 17:09:28 : Задание 111111 : Шаблон 4 : Нет элемента капчи и нет изменения URL
04.11.2019 17:12:12 : Задание 111111 : Шаблон 5 : Нет элемента капчи и нет изменения URL
 
Последнее редактирование:

id0777

Client
Регистрация
22.09.2019
Сообщения
30
Благодарностей
5
Баллы
8
тут все понятно проект завершился в связи с ошибкой а у меня просто пишет проект успешно завершен почему непонятно возможно из за списка но не логинов а списка id новостей
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 697
Баллы
113
тогда точно надо в проекте проставить выводы сообщений. начал тогдато, закончил тут то, счетчики значит вот такие. погода такая то :-)
 

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