Сервер кометы в веб-саду
Я использую IHttpAsyncHandler
обслуживать комету / длительный опрос. Обработчик держит соединение открытым и сохраняет MyAsyncResult
объект в статике ConcurrentSet<MyAsyncResult>
,
Когда сделан отдельный запрос (запрос, который вызывает комету к ответу), программа находит MyAsyncResult
Объект в списке и завершает запрос.
Моя проблема заключается в том, что когда я изменяю свое приложение для запуска в Webgarden, эта статическая переменная не будет использоваться всеми рабочими процессами, поэтому эта реализация не будет работать..
Теперь у меня нет возможности хранить MyAsyncResult
объект в базе данных SQL, или любой вид объекта, который может быть полезен (например, IHttpHandler
сам или делегат, указывающий на метод EndProcessRequest и т. д.). Я мог бы хранить определенные идентификаторы и строки в базе данных SQL и постоянно проверять новые значения, но это кажется дорогостоящим и отчасти побеждает объект использования длинного опроса в первую очередь.
Есть ли способ поделиться своей статичностью ConcurrentSet
через веб-сад? Или любым другим способом, которым я могу получить IHttpAsyncHandler
то есть сидел там в ожидании сигнала для отправки своего ответа?
Редактировать:
Если я не могу поделиться переменными между процессами, есть ли способ, которым я могу транслировать все другие рабочие процессы? Все, что мне нужно здесь, это один сигнал с двумя целочисленными параметрами.