Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
1

Круглосуточная работа бота

23.05.2017, 19:34. Показов 2008. Ответов 36
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть бот на C# ASP.NET MVC, который меняет название группы вк. Название меняется только при обновлении страницы, а как мне сделать, чтобы название менялось каждый раз по принципу: "Если название группы не равняется этому, то сменить на это".
И такая проверка должна быть круглосуточно, то есть без обновления страницы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2017, 19:34
Ответы с готовыми решениями:

Некорректная работа бота ghost++
Дело в том что настроено все отлично,я смог поиграть игр 20...но потом гост начал вые... когда я...

Python, постоянная работа бота для вк при выключенном компьютере
Всем привет. Я новичок и в этих делах не разбираюсь. Есть самописный бот на питоне для вк, работает...

Написание бота
Доброго времени суток, столкнулся задачей написать бота, который может кликать по кнопкам на html...

Написание бота
Прошу помощи, проблемма такова, вобщем имееться возможность и желание написать бота, для браузерной...

36
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
27.05.2017, 17:16 21
Author24 — интернет-сервис помощи студентам
П.С WebClient нужно диспозить , иначе рано или поздно , с таким подходом . будет краш.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
27.05.2017, 17:26  [ТС] 22
sau, title равен name, если кол-во участников не изменилось.

Добавлено через 10 минут
sau, с обычным
C#
1
2
3
4
5
While(true){
...
 
Thread.Sleep(2000);
}
тоже самое.
0
Эксперт .NET
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,595
28.05.2017, 05:35 23
System Worm, на базе ASP.NET MVC реализовывать длительные фоновые задачи нельзя. Приложение развёрнутое в IIS не контролирует своё время жизни и в любое время может быть остановлено или перезапущено.

Длительные фоновые задачи нужно организовывать отдельным приложением (сервисом) или, как было упомянуто, через CRON (если есть). Общение таких вещей с веб-приложением можно организовать через WCF\TCP или через общие данные в общей базе или ещё как.

Запускать потоки и таймеры в Application_Start() не имеет смысла. Хоть оно и заработает, но абсолютно ненадёжно по причинам описанным выше, а значит и бесполезно.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 10:58  [ТС] 24
Usaga, Собственно создал проект WCF приложение, залил на сервер. А как вызвать теперь эту службу? И нужно ли там ставить цикл, чтобы бот работал длительное время?
0
Эксперт .NET
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,595
28.05.2017, 11:44 25
System Worm, это всё можно было бы у себя на локальной машине отладить и во всём разобраться. И WCF-службу можно двумя способами разместить: в IIS и отдельным приложением. В случае IIS-а такая служба будет страдать теми же проблемами от которых вы пытаетесь уйти.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 11:53  [ТС] 26
Usaga, Подскажите как мне сделать, чтобы мое приложение работало на сервере циклом? я просто с серверным C# пока не лажу, буквально несколько дней с ним знаком.
0
Эксперт .NET
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,595
28.05.2017, 12:11 27
System Worm, нет никакого "серверного C#". Оформляете свой сервис в виде службы Windows или обычным консольным приложением, которое ждёт нажатие любой кнопки, и всё. В сети полно информации о том, как создавать WCF-сервисы.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 14:04  [ТС] 28
Usaga, Я походу все исправил. Вместо WebClient сделал WebRequest
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
28.05.2017, 14:24 29
Цитата Сообщение от System Worm Посмотреть сообщение
Usaga, Я походу все исправил. Вместо WebClient сделал WebRequest
)) они работают одинаково , WebClient - обертка над WebRequest.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 14:27  [ТС] 30
sau, тогда почему все заработало? Может потому что там using'и используются?
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
28.05.2017, 15:00 31
Ну , нам тут можно только гадать , проект у Вас , а мы всего лишь имеем наброски кода.
Сперва я предположил , что Вы неверно с кодировкой работаете , но , с ваших слов , условие title != name выполнялось локально корректно. Если проблема только на хостинге , то , вероятно , это могло быть связано как то с перезапуском пула , хотя так часто перезапуск мог быть только в случае не перехваченных исключений. А теперь , когда Вы говорите , что помогла простая замена WebClient на WebRequest - я совсем в тупике ) , видимо , в процессе замены . были исправлены какие то ошибки в коде , примеры которого мы не видели.

Вообще , это частая история , когда автор темы не раскрывает всех карт или некорректно описывает ситуацию , и тут начинается раздувание на 100500 страниц , по сути , мелкой проблемы , которая обрастает мифами и легендами ).
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 15:17  [ТС] 32
sau,

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public async void Bot()
        {
            while (true)
            {
 
                WebRequest request = WebRequest.Create("https://api.vk.com/method/messages.getChat?access_token=Token&chat_id=21");
                WebResponse response = await request.GetResponseAsync();
                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        JObject j = JObject.Parse(reader.ReadToEnd());
 
                        string title = (string)j["response"]["title"];
                        int users = j["response"]["users"].Count();
 
 
                        string name = "Тест, нас " + users;
 
 
                        if (title != name)
                        {
                            request = WebRequest.Create("https://api.vk.com/method/messages.editChat?access_token=Token&chat_id=21&title=" + name);
                            response = await request.GetResponseAsync();
                        }
 
                    }
                }
 
                response.Close();
                Thread.Sleep(2000);
            }
        }
заметил, что цикл не "вечный", попробовал через некоторое время сменить название, смена не сработала. Пришлось опять запускать службу. Можно сделать, чтобы служба работала всегда?
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
28.05.2017, 15:51 33
А у Вас точно нет никакого планировщика задач на хостинге ? , по моему это настолько стандартная функция , что должна быть везде. , это решило бы все вопросы.
Как уже выше писали , если служба зависит от пула веб.сервера , то она имеет все те-же проблемы.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 16:52  [ТС] 34
sau, На данный момент использую хостинг somee. Хочу попробовать на hostinger'е

Добавлено через 43 минуты
sau, Может все таки возможно сделать долговременную (или даже "вечную") службу?
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
28.05.2017, 17:08 35
Если у Вас VDS тариф , можете настраивать какие угодно службы и контролировать повторный запуск тем же планировщиком windows
0
Эксперт .NET
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,595
28.05.2017, 17:08 36
System Worm, да, такую службу сделать возможно. Но не в рамках IIS. Я вам уже об этом писал.
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
28.05.2017, 17:14 37
Есть еще такая функция у IIS - https://msdn.microsoft.com/en-... s.90).aspx ,но это только если есть непосредственный доступ к веб.серверу. Ладно , дальше сами ) , тут уже сказано больше чем нужно.
0
28.05.2017, 17:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2017, 17:14
Помогаю со студенческими работами здесь

Создание бота
Доброго времени суток всем! Задался идеей сделать бота для мобильной игры "Битва Замков", т.к....

Создание бота
Можете посоветовать с чего начать,с каких источников можно брать эту инфу.Хочу попробовать себя в...

Создание бота
Ребят всем привет, может быть создаю тему не в том разделе, но больше разделов подходящих не нашел....

Написание бота
Добрый день. Прошу прощения, если создал тему не в том разделе. Подскажите, на каком языке...

Определить бота
function isBot(&$botname = ''){ ...

Аниматор бота
Все привет, подкиньте видео или расскажите как заставить работать анимацию на боте, дело в том что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru