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

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

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

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

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

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

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

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

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

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

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

Вообще , это частая история , когда автор темы не раскрывает всех карт или некорректно описывает ситуацию , и тут начинается раздувание на 100500 страниц , по сути , мелкой проблемы , которая обрастает мифами и легендами ).
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 15:17  [ТС]
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
 Аватар для sau
2774 / 2074 / 386
Регистрация: 22.07.2011
Сообщений: 7,821
28.05.2017, 15:51
А у Вас точно нет никакого планировщика задач на хостинге ? , по моему это настолько стандартная функция , что должна быть везде. , это решило бы все вопросы.
Как уже выше писали , если служба зависит от пула веб.сервера , то она имеет все те-же проблемы.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 21
28.05.2017, 16:52  [ТС]
sau, На данный момент использую хостинг somee. Хочу попробовать на hostinger'е

Добавлено через 43 минуты
sau, Может все таки возможно сделать долговременную (или даже "вечную") службу?
0
 Аватар для sau
2774 / 2074 / 386
Регистрация: 22.07.2011
Сообщений: 7,821
28.05.2017, 17:08
Если у Вас VDS тариф , можете настраивать какие угодно службы и контролировать повторный запуск тем же планировщиком windows
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,440
28.05.2017, 17:08
System Worm, да, такую службу сделать возможно. Но не в рамках IIS. Я вам уже об этом писал.
0
 Аватар для sau
2774 / 2074 / 386
Регистрация: 22.07.2011
Сообщений: 7,821
28.05.2017, 17:14
Есть еще такая функция у IIS - https://msdn.microsoft.com/en-... s.90).aspx ,но это только если есть непосредственный доступ к веб.серверу. Ладно , дальше сами ) , тут уже сказано больше чем нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2017, 17:14
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru