Кажется, единственный способ сделать API GAE Channel финансово жизнеспособным - реализовать какой-то механизм объединения (один из старших менеджеров продуктов для приложений даже сказал мне это, когда я отправил им по электронной почте о непомерной цене), чтобы повторно использовать каналы, которые еще не истекли.
Я занимался мозговым штурмом (местами) для реализации пула каналов, но каждый метод, о котором я думаю, имеет некоторые довольно серьезные недостатки.
Статическая память сервлета. Хорошо, но при открытии нового экземпляра виртуальной машины и/или передачи клиента с одной виртуальной машины на другую будет выпадать довольно много открытых каналов.
Memcache. По крайней мере, память доступна глобально из всех виртуальных машин, но теперь возможность сброса очень жизнеспособного канала, возможно, больше из-за бездействия и давления памяти.
Backend Instance. Вероятно, это лучший вариант с точки зрения надежности, но теперь затраты на запуск бэкэнда будут в первую очередь поглощать все преимущества внедрения пула!
Есть ли лучшее место/способ реализации пула каналов в виртуальных машинах, которые мне не хватает, или я без лишних причин зависаю от недостатков моих опций здесь? Я действительно надеюсь, что есть, или похоже, что моему приложению придется вернуться к опросу (который выглядит немного дешевле в моих предварительных показателях).