2014-02-17 3 views
0

Проблема у меня в том, что я использую стороннюю DLL для чего-то (очень дорогостоящая операция), она не сериализуема, и требуется время, чтобы размножаться каждый раз. Это необходимо для каждого вызова службы WCF, и я не могу сохранить его в памяти (recyling), и я не могу хранить его в кеше (unserializable).Условное применение в Azure

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

Хотелось бы думать, что я не единственный в этом вопросе, и что кто-то еще решил эту проблему! :)

ответ

2

Почему вы не можете использовать Роли Рабочих или Роли Web, чтобы сохранить данные, созданные процессом yoru в памяти? Ни одна из двух ролей не «флеш», это память на частой основе. Правда, не гарантируется, что перезагрузки не происходят, но эти перезагрузки очень редки и проверяют, чтобы убедиться, что ваши данные statefull пусты, а затем повторно заселяют их, когда это так, не должно быть большой проблемой, и логика будет работать на любом сервере так же, будь то облачная служба или выделенная виртуальная машина.

Редактировать: роли или роли ролей не перезапускаются ни в одном известном цикле. Однако по умолчанию IIS перерабатывает по расписанию. Этот таймер можно изменить или отключить с помощью сценария запуска. Кроме того, такая рециркуляция не происходит в рабочих ролях. Таким образом, если вы работаете в роли работника, дело будет оставаться в памяти, пока вы не перерабатывают сервер самостоятельно или редкое обновление окна происходит

HTH

+0

Может быть, я не понял. Я понимаю, что webroles будут перерабатывать (по умолчанию это около 20 часов) и флеш память. Еще важнее то, что WebRoles полностью без гражданства, поэтому каждый вызов создает новый экземпляр службы. Я знаю, что могу изменить это как единый экземпляр, но это повлияет на масштабируемость, не так ли? – Faraday

+0

Отредактировал мой ответ, чтобы быть более ясным – Igorek

+0

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

Смежные вопросы