Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как работать с каналами в Redis psubscribe?
 
 автор: Oli   (10.03.2014 в 02:52)   письмо автору
 
 

Имеется один канал под именем "public", в него публикуется вся публичная инфа в формате JSON. Считывается это все так:

redisClient.on('pmessage', function(pattern, channel, dataJson) {
    dataJson = JSON.parse(dataJson);
    // Send to Socket.io
});


Сначала, канал пустой (без данных). Как только в нем появляются данные - они рассылаются всем подписчикам. Когда в канале публикуется запись следующая - она рассылается всем подписчикам вместе с предыдущей. И так до бесконечности, отправляя уже ранее отправленные. Как с этим быть? Как правильно работать с каналом?

  Ответить  
 
 автор: cheops   (10.03.2014 в 09:26)   письмо автору
 
   для: Oli   (10.03.2014 в 02:52)
 

А нужно как? Чтобы отправленные данные больше не отправлялись? Или спустя какое-то время не отправлялись старые данные?

  Ответить  
 
 автор: OLi   (10.03.2014 в 23:57)   письмо автору
 
   для: cheops   (10.03.2014 в 09:26)
 

Нужно так, чтобы, если сообщение было отослано всем и все его гарантированно получили - удалять эту запись с канала. Грубо говоря - очередь: первый пришел - первый ушел.
Хотя, нет, тогда будут задержки в рассылке сообщений

  Ответить  
 
 автор: cheops   (13.03.2014 в 22:00)   письмо автору
 
   для: OLi   (10.03.2014 в 23:57)
 

А как сеть устроена, у вас получатели сообщения что из себя представляют? Они напрямую обращаются к redis-серверу? Просто не очень понятная проблема. redis "держит" бешенное количество обращений и вообще крайне надежная штука, на него запросто можно повесить десяток веб-серверов и он спокойно от них отобъется... Создайте ключ и пусть другие регулярно читают этот ключ, например, по крону.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования