Pull to refresh
0
0
Dimus @Dimus

User

Send message
Насколько я понял, проблема возникает именно с группой. То есть, Channels рассылает сообщения участникам группы сравнительно медленно и после 200-300 сообщений рассылающая корутина отваливается по таймауту в 10 секунд.
Каков вообще предел одновременных подключений к Channels трудно сказать, мы в него не успели упереться.
Кстати, Андрей Светлов на PiterPy говорил, что вообще ASGI это костыль и он по своей архитектуре в принципе не может работать быстро. Хотя и отметил, что это неплохое решение для Django из коробки для тех, у кого нет больших нагрузок.
Ответил на Ваш вопрос выше.
Да, тикет на эту тему есть: github.com/django/channels/issues/1116

Andrew Godwin в нем ответил следующее:
In general I wouldn't recommend Channels groups for any sort of large-scale work — you should probably roll your own solution if you have more than about 50 concurrent users in any single group, as you'll know the best option to use at your scale.
… Groups is more designed to have hundreds of groups with only a few members in each (i.e. per-user).

По сути, группа в большей степени предназначена для разных подключений одного пользователя (разные браузеры/устройства). Для большого количества одновременных подключений Channels не подходит (во всяком случае пока). Глубже копать особо не стали, вернулись к прошлому решению на Centrifugo, которое успешно работало у нас несколько лет.
Попробовали у себя на проекте потестировать Django Channels — оказалось, что когда количество подключений в одной группе превышает 200-300 — последние добавившиеся в группу перестают получать сообщения по вебсокету. Это не подходило под наши задачи, вернулись обратно к связке Django+Centrifugo.
Интересная штука.
Рефакторинг с одной стороны порадовал, с другой напугал. Может это с непривычки, конечно.
Порадовала довольно шустрая работа для такого богатого функционала.

Правда вот дев сервер с наскока запустить так и не смог, на отрез отказывается видеть settings.py. В настройках пути прописал, но не сработало.
Хороший скрипт, спасибо. При следующей настройке наверное использую его как основу для своего.
У меня сейчас 2 сервера настроены схожим образом. Из всего что я пробовал связка Nginx+uWSGI + следящий supervisor мне больше всех пришлась по душе.

И еще, забавная опечатка:
/etc/init.d/supervisor restop
restop, что-то есть в этой команде ))
Я тоже поставил для эксперимента Cherokee. Радует что он сам «присматривает» за uwsgi и flup демонами и довольно удобно админится.

Хотя, если честно, для чего-то большого использовать его пока не решаюсь.
Safari 5.0.2 под Mac OS — полет нормальный.
Интересно, а что за «Enable additional effects for IE9» внизу? Где-то я это уже видел =)
Вот еще несколько несколько цитат Форда:

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

«Если человек хорошо делает свою работу, последующее вознаграждение, прибыль и все финансовые вопросы будут решаться и регулироваться сами собой, бизнес нужно начинать с малого и постепенно расширять его за счет доходов. Если доходов нет — это сигнал владельцу: он попусту теряет время и, возможно, занялся не своим делом».

«Я принял твердое решение никогда не связываться с компаниями, где всем заправляют спекулянты и деньги стоят на первом месте».

«Не работодатель платит жалование. Он попросту его распределяет. Только конечный продукт определяет сумму выплат».

«Самое неудачное время одалживать деньги, когда банкиры точно знают, что вы в них нуждаетесь».

«Мы не держим «экспертов». Более того, мы вынуждены избавлять от работника, как только он возомнит себя таковым, поскольку человек, хорошо знающий свое дело, никогда не станет утверждать, что знает его досконально».

Всем, кто занимается своим бизнесом или планирует его организовать тоже советую прочитать эту книгу. Одна из лучших книг о бизнесе, которую мне доводилось читать.
200$ за 2 дня за архиватор — вполне не плохо. публикуйте дальнейшую статистику — интересно.
Спасибо за статью!
Как бальзам на душу, что где-то учебный процесс организован по-человечески.
А то вчера читал статью про образование на факультете ИУ в Бауманке и плакал. Сам Бауманку закончил, когда учились — терпели, но сейчас вспоминаешь — понимаешь, в каком ужасном состоянии образование в постсоветских вузах.
Спасибо за перевод.
Если бы физику так преподавали в моей школе или в универе — я бы возможно посвятил ей жизнь.
Да, точно. Столько раз переустанавливал в самых разных вариантах, что глаз уже замылился.
Но все равно не помогло.

В итоге решил проблему через MacPorts:
sudo port install python26, py26-mysql, py26-django, py26-pil

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

Нашел вот эту вещь — ethan.tira-thompson.org/Mac_OS_X_Ports.html, библиотека jibjpeg уже собранная с инсталлером. Установил, в папке /usr/local/lib/ появился файл libjpeg.62.dylib, все ок.
Переставил PIL, но он все равно ругается — Symbol not found: _jpeg_resync_to_restart

Проверил зависимости _imaging через otool, сслыка есть на эту библиотеку, все ок вроде:
/Library/Python/2.6/site-packages/PIL/_imaging.so:
/sw/lib/libjpeg.62.dylib (compatibility version 63.0.0, current version 63.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 124.1.1)

Уже не знаю куда и копать…
Огромное спасибо за пост, я уже измучился весь с этой проблемой…

Только вот теперь помогите разобраться)
Попробовал вариант а):
Удалил /sw/lib/libjpeg.62.dylib, собрал libjpeg заново по вашему мануалу — теперь библиотеки с именем libjpeg.62.dylib теперь в системе у меня вообще нет ((
А в директории /usr/local/lib/ после make install создались только эти 2 файла: libjpeg.a, libjpeg.la.

Как быть?
И еще. Понравился код в приложении. Красиво сделано )
Есть чему поучиться у вас в навыках владения питоном и джангой.
Обалденная вещь! Класс ) Заказчики будут в восторге!
*думаю, на каком сайте первым применить ее =Р*

З. Ы. Только вот устанавливать пример не совсем удобно.
Я бы посоветовал вам прописать путь /home/rt/workspace/… в settings.py в каком-нибудь одном месте (и не забыть использовать его в файле urls.py).
И укажите где-нибудь, какой пароль администратора у бд, которая идет вместе с примером )
Новую создать, конечно, не проблема, но зачем тогда эта? )
А что есть x11-й xterm?
Честно сказать, через стандартный термирал mac os работать с mc почти невозможно =(
Да, мне эта мышь тоже не по душе пришлась.
Плохо лежит в моей руке, правая кнопка нажимается проблематично, иногда заедает скролл.
360 градусный скролл мне не нужен, так что обойдусь без него.
Завтра собираюсь заменить ее на Logitech MX Revolution.
У меня была такая идея несколько лет назад, но я в нее не верил. А потом и вообще про нее забыл =)
Разработчикам сайта — респект. Зарегистрировался.
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity