Ну и конечно это не отменяет обработку командной строки , валидацию xml, и обработку ошибок. Я так понимаю, что задание было не на скорость, так что можно было еще немного постараться. Ну да ничего, все впереди.
Юрий Чудновский: А это важно, держал я или нет? Т.е. Вы считаете, что пользователь готов разориться на 11-15 тысяч на 10 гигабитную карточку? Или роутеры SOHO появились с портами 10гб за меньше чем 300 тысяч рублей?
А теперь давайте подумаем, сколько для провайдера будет стоит один коммутатор на 48 10гигабитных портов, ну типа мелланокс 36-й серии.... Сколько на порт абонентский порт выйдет? У меня меньше 50К рублей на порт никак пока не получается....
Еще раз. Коммутаторы с портами по 1 гигабиту, аплинк-порты по 10 гигабит. И наверняка DLINK 3420, хотя они нафиг не нужны в доме.
Более того, провайдер еще и скорость срежет до 100 мегабит, хотя линком будет гигабит гореть, вот только никто не получит этот гигабит, что правильно и нафиг никому не нужно, пока.
Нет, порты скорее всего гигабитные, а вот интерконнект между свичами - 10 гигабит. Никто на пользователя 10 гигабит подавать не будет, это архидорого и пользователю и провайдеру. Ну и выход на дом скорее всего гигабит.
:-) потому что getMatches работает как "генератор". Другими словами, она в каждом цикле отдает управление вызвавшему коду через yield и передает этот самый url. Ну и генераторы использовать можно в цикле.
Так зачем он вообще нужен?! Его использует, да практически никто его не использует, кроме netbios! А его запрещать нужно!
Более того, разрешая броадкаст-передачи, вы тем самым ставите под удар своиз абонентов - https://ru.wikipedia.org/wiki/Широковещательный_адрес
И я говорю про IP-broadcast, а не про ethernet.
Ну и если у вас локальная офисная сеть, то конечно же броадкаст запрещать не нужно.
polyakovyevgeniy: если возникают исключения, то логируйте их. В питоне есть замечательная библиотека logging. А уж по стектрейсу смотрите, что не так.
И да, это нормально, опрашивать один url. Можно с нескольких мест и очень-очень быстро, они для этого и созданы. А можно еще использовать long pooling технику, или websockets. Посмотрите примеры чатов на aiohttp, tornado или twisted/cyclone.io.
polyakovyevgeniy: ну, для ноды не скажу, а для питона - берете aiohttp или flask, вешаете сервер на localhost, и через json request-response гоняете все что захочется. Все есть в стандартных туториалах. В отличии от больших приложений, у вас просто крутится вебсервер на каком нибудь оригинальном порту типа 5577, принимает запросы от другого приложения. В питоне запросы можно посылать через requests, urllib2, aiohttp-client...
Увы, выбрали битрикс. Но это был выбор руководства.
Но теперь, после нескольких проектов на битрикс, я к нему подходить почти не хочу.
Новые проект сделали на flask. Теперь некоторые куски переводим на aiohttp.
База данных elasticsearch, именно как хранилище. В помошникхах redis, для счетчиков, корзинок, кешей и евего, что не жалко потерять и для скорости отдачи.
А битрикс редкостное говно, уж извините. Шаг влево-вправо, и в говне.
Павел Каптур: Ну, "глобальный класс" здесь совсем не нужен. А буферизицию лучше сделать через очередь сообщений. И эту ссылку на эту очередь передавать и в callback и в обработчик команд. В принципе это традиционная модель - consumer-producer. Если пишете на C++ с использование какого-то фреймворка, то наверняка уже есть готовые классы.
И "глобальный класс" обычно называется singleton. Но чтобы не делать именно один класс, обычно создают объект типа Context, и его передают во все нужные сущности. Единственное, позаботьтесь о синхронизации доступа через блокировки.