Форум сайта python.su
Не знаю в каком разделе форума лучше спросить, спрашиваю здесь.
Мне нужно отправлять сообщения в Jabber из web-приложения. Планирую использовать xmpp.py. Есть несколько вопросов по этой билиотеке. На xmpppy.sourceforge.net ответов не нашел.
Является ли xmpp.py потокобезопасной? Т.е. могу ли я открыть одно соединение на все приложение и отправлять через него сообщения из разных потоков? Или придется открывать соединение каждый раз заново? Возможно ли в xmpp.py создать пул соединений и нужно ли? Может существуют другие библиотеки, которые лучше подходят для моей задачи?
В качестве web-фреимворка используется Flask.
Офлайн
мне кажется что правильным вариантом будет, использовать очереди сообщений. тогда все вопросы и проблемы пропадут.
Офлайн
Попробую использовать Celery
Офлайн
А оно Вам точно надо через сервер перегонять? Может напрямую из javascript пойдет? например через такое: https://github.com/metajack/strophejs
Если же Вас интересуют библиотеки на питоне для работы с xmpp - то ПМСМ наиболее лучшая на сегодняшний день - SleekXMPP - https://github.com/fritzy/SleekXMPP
Отредактировано ziro (Июль 21, 2012 19:47:19)
Офлайн
Точно нужно с сервера посылать. Из JavaScript не пойдет.
Мне бы что-то вроде такого https://github.com/cstar/XMPPPool только для python. Пока прикрутил Celery, но считаю, что для такой задачи это лишний оверхед. Можно попробовать написать pool самому.
Офлайн
для джанги есть модуль рассылки уведомлений по xmpp. но там просто всё. сообщения пишутся в базу. потом по крону скрипт всё выбирает и отсылает.
если нужна просто рассылка то селери, ИМХО, из пушки по воробьям.
задачке вроде тривиальная и велосипедится за 10 минут.
Офлайн
Задача вроде тривиальная, но простого решения пока не вижу. Крон - еще больший костыль чем очередь, на мой взгляд. Слишком много нюансов возникает в случае его использования.
Офлайн
unkierКак часто запускать скрипт? Как выбирать записи: по одной или все сразу? Что будет, если с предыдущего запуска в базе накопилось очень много сообщений? Если запускать очень часто, насколько это будет грузить сервер? Как разруливать ситуацию, когда скрипт еще не отработал, а крон уже запустил скрипт еще раз?
каких например нюансов ?
Офлайн
Andrey Kh
Как часто запускать скрипт? Как выбирать записи: по одной или все сразу? Что будет, если с предыдущего запуска в базе накопилось очень много сообщений? Если запускать очень часто, насколько это будет грузить сервер? Как разруливать ситуацию, когда скрипт еще не отработал, а крон уже запустил скрипт еще раз?
А вообще, мне нужно отправлять уведомления без больших задержек.
Офлайн