// codeart.ru / Теория программирования / Немного про очереди сообщений на defaceit.ru Форум

Немного про очереди сообщений на defaceit.ru rss подписка

Автор: Evgeniy Sergeev

Долгое время занимался тем, что делал простешую очередь сообщений (message queue), которая была бы доступна посредством интефрейса Defaceit.Queue. На данный момент кое-что сделано, поэтому небольшой отчет в посте ниже.

Как-то я уже игрался с сервисом сообщений на Amazon-е Simple Queue Service. Сервис очень даже ничего, но имеет один большой недостаток — не позволяет обращаться к очереди из браузера посредством javascript. Плюс ко всему сам сервис намного сложнее чем то, что мне необходимо. Поэтому решил написать простейшую очередь самостоятельно.
[social_lock]
Но сама по себе реализация очереди сообщений мне была неинтересна, хотелось сделать готовый класс на Defaceit, который будет прозрачно использовать данную очередь. Грубо говоря, хотелось чтобы работал вот такой код:


Defaceit.Queue(queueName).client({
queue_message: function(message){
$("#messages").append($("<p>").html(message));
},
queue_status: function(message) {
Defaceit.Queue(queueName).top();
}
});

Defaceit.Queue(queueName).list(); // Обновлении содержимого очереди выполняется при каждом запуске данной функии

Клиентом очереди может быть любой объект который содержит методы «queue_message» и «queue_status».

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

Сам плагин, как и сама очередь еще очень сырые. Любой из моих читателей легко найдет проблемы с валидацией. Но, надеясь на вашу порядочность, имя очереди придется засветить. Иначе никакой демонстрации не получится. :-) Но прежде пара слов о «браузере сообщений».

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

Сейчас очереди создаются при добавлении первого сообщения. Каждый желающий может добавить сообщение в очередь зная только ее имя. В ближайшем будущем планирую организовать возможность управлять параметрами очереди. Например, можно будет задававть время жизни сообщения в очереди, а так же права на добавление или удаление сообщений на основен Yandex OpenId. Но об этом расскажу более подробно когда сделаю.
[/social_lock]

Leave a Reply

« »