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

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

Автор: Evgeniy Sergeev

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

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

Но сама по себе реализация очереди сообщений мне была неинтересна, хотелось сделать готовый класс на 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. Но об этом расскажу более подробно когда сделаю.

Leave a Reply

« »