Помогите сделать разовую отправку сообщения в телегу в многопотоке

slash4ik

Client
Регистрация
05.03.2021
Сообщения
28
Благодарностей
0
Баллы
1
Всем привет. Пытаюсь сделать отправку сообщения в телеграм, когда проект полностью завершится. Суть проекта: Я проверяю аккаунты из таблиц, и по окончанию хочу получить сообщение в телегу от бота. Проблема в том, что я хочу получить сообщение один раз, а не от каждого потока))) и с определенными данными, и эти данные я получаю только по окончанию последнего потока. Решение, которое я придумал, это чтоб в проекте была логика Good End и по окончанию, поток увеличивал счетчик глобальной переменной на 1, и по достижению нужного числа он отправлял сообщение.
В моей голове вроде все должно работать, но проблема заключается в том, что почему-то в этом проекте не отрабатывается действие по Good End. Хотя успешных выходов аж 3.
 

Alex733

Client
Регистрация
27.11.2017
Сообщения
317
Благодарностей
230
Баллы
43
Трассировка в помощь.
 

slash4ik

Client
Регистрация
05.03.2021
Сообщения
28
Благодарностей
0
Баллы
1
Трассировка в помощь.
а как с этим работать? это тест шаблона на ошибки?

нашел информацию. но разве есть смысл? У меня даже в ПМ не отрабатывает goodend почему-то. Из-за чего это может быть?
 
Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 409
Баллы
113
Решение, которое я придумал, это чтоб в проекте была логика Good End и по окончанию, поток увеличивал счетчик глобальной переменной на 1, и по достижению нужного числа он отправлял сообщение.
В моей голове вроде все должно работать, но проблема заключается в том, что почему-то в этом проекте не отрабатывается действие по Good End. Хотя успешных выходов аж 3.
Создайте список.
Привяжите его к файлу.
Первым действием проверяйте количество строк (или признак в этом списке).
Если достигнуто количество строк проверяем наличие строки END:
- если она есть - завершаем работу, так как другой поток уже что-то шлет в телеграм
- если нет - добавляем строку END и нужную отправку в телеграм - ждем на паузе какое-то время, чтобы все потоки если такие начались завершили работу - очищаем список - завершаем работу (если нужно стартануть все задачи например расписанием через час).
Если не достигнуто - выполняем целевую работу которая в конце выполнения добавит строку в список.
 

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