Я сейчас разрабатываю приложение, которое создает и сохраняет соединение с локальным сервером XMPP в области Приложения. Способы подключения хранятся в cfc, что гарантирует, что Application.XMPPConnection подключается и авторизируется каждый раз, когда он используется, и использует соединение для отправки живых событий пользователям. Насколько я могу судить, это работает нормально. НО он не тестировался под каким-либо стрессом.Можно ли хранить большие объекты (например, компонент java) в переменной приложения?
Мой вопрос: Будет ли это создать проблемы вызывают в дальнейшем? Я только спрашиваю, потому что я не могу найти доказательства других людей, использующих переменные приложения таким образом. Если бы я не использовал рельсо, я бы использовал шлюз событий CF, чтобы выполнить ту же задачу.
спасибо за ответы. мне может потребоваться рассмотреть сценарий нескольких потоков, обращающихся к объекту, но я думаю, что его настройка прямо сейчас довольно хороша. единственным объектом, который хранится в области приложения и общим для всех пользователей, является объект соединения XMPP (созданный библиотекой Smack). он призван отправлять очень быстрые команды xmpp локальному серверу openfire. может ли тэг помочь? –
Представьте 500 запросов в очереди, ожидая, пока одно соединение будет бесплатным. (Если вы используете cflock.) В зависимости от различных факторов это может вызвать огромное узкое место. –
Даже если CFLOCK не используется (он в основном устарел) CF является потокобезопасным, так как MX (6). Множество потоков, просматривающих одно и то же местоположение данных, не нужно ждать, но вызывающие функции вызовут их очередь. По крайней мере, это мое понимание. –