Работа с таймером (Помогите:D)

tom_dwan

Пользователь
Регистрация
09.08.2019
Сообщения
52
Благодарностей
3
Баллы
8
Всем привет) Я хочу работать в 5 потоков.
Такой вопрос: Как сделать что бы мои профили имели как бы таймер когда профиль отправил сообщение он не юзался шалоном в течении 10-12 минут потом опять грузился и так по кругу. Даже если будет 50 аккаунтов что бы они работали по кругу 1 сообщение в 10 минут.
Буду очень благодарен за подсказку))8-):D:ah:

Screenshot_1.jpg
 

Samoylov_83

Client
Регистрация
25.08.2015
Сообщения
228
Благодарностей
69
Баллы
28
делать бд (ну или csv, не уверен, что будет работать без ошибок, но можно проверить), в которой будет список путей к профилям и отдельно таймштамп, после использования профиля обновляешь в бд таймштамп, потом просто берешь профиль из бд удовлетворяющий условию и все.
 

tom_dwan

Пользователь
Регистрация
09.08.2019
Сообщения
52
Благодарностей
3
Баллы
8
делать бд (ну или csv, не уверен, что будет работать без ошибок, но можно проверить), в которой будет список путей к профилям и отдельно таймштамп, после использования профиля обновляешь в бд таймштамп, потом просто берешь профиль из бд удовлетворяющий условию и все.
а как этот таймштамп ставить
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 167
Благодарностей
2 169
Баллы
113
Алгоритмов много, все зависит от фантазии. Схема по быстрому:

1) Список профилей скинуть в список несколько раз, так чтобы строки по очереди брались с удалением, но и чтобы список не кончался. Тогда соседние потоки не будут брать один и тот же файл профиля, при условии, что профилей гораздо больше потоков.
2) При каждом взятии профиля а также и при успешной отправки сообщения сохранять профиль.
3) В нашем шаге «1)» настроить так, чтобы если поток берет файл профиля, проверяет дату его последнего редактирования. И если разница слишком маленькая, то пропускает этот профиль. На c#:
C#:
var File_Path = project.Variables["File_Path"].Value; // считываем путь к файлу из переменной, например "C:\1\Input\Profile1.zpprofile"
DateTime LastWriteTime = new System.IO.FileInfo(File_Path).LastWriteTime; // получаем дату последнего редактирования файла
TimeSpan Time_diff = DateTime.Now - LastWriteTime; // считаем разницу временную
return Math.Floor(Time_diff.TotalSeconds); // возвращаем разницу в секундах
 

tom_dwan

Пользователь
Регистрация
09.08.2019
Сообщения
52
Благодарностей
3
Баллы
8
Алгоритмов много, все зависит от фантазии. Схема по быстрому:

1) Список профилей скинуть в список несколько раз, так чтобы строки по очереди брались с удалением, но и чтобы список не кончался. Тогда соседние потоки не будут брать один и тот же файл профиля, при условии, что профилей гораздо больше потоков.
2) При каждом взятии профиля а также и при успешной отправки сообщения сохранять профиль.
3) В нашем шаге «1)» настроить так, чтобы если поток берет файл профиля, проверяет дату его последнего редактирования. И если разница слишком маленькая, то пропускает этот профиль. На c#:
C#:
var File_Path = project.Variables["File_Path"].Value; // считываем путь к файлу из переменной, например "C:\1\Input\Profile1.zpprofile"
DateTime LastWriteTime = new System.IO.FileInfo(File_Path).LastWriteTime; // получаем дату последнего редактирования файла
TimeSpan Time_diff = DateTime.Now - LastWriteTime; // считаем разницу временную
return Math.Floor(Time_diff.TotalSeconds); // возвращаем разницу в секундах
а можно твой контакт получить) Если есть телеграм или напиши ты мне пожалуйста @tomdwan19
 

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