Sinatra / Rails: сохранение экземпляров пользовательских классов в течение жизни приложения - PullRequest
2 голосов
/ 24 апреля 2010

Можно ли утверждать, что приложения rails / sinatra инициализируются только один раз, и все запросы разделяют одно и то же приложение пример? или новые запросы порождают новые экземпляры приложения?

Можно ли создавать экземпляры пользовательских классов и сохранять их при жизни приложения, не используя сеансы, хранилища базы данных или сторонние службы? Если да, то каковы последствия с точки зрения безопасности потоков?

Я пытаюсь понять, как реализовать веб-менеджер загрузок, и в настоящее время я оцениваю платформы на основе ruby.

1 Ответ

2 голосов
/ 07 июня 2010

Можно ли утверждать, что приложения rails / sinatra инициализируется только один раз и все запросы использовать один и тот же экземпляр приложения? или сделать новый запросы порождают новые экземпляры приложения?

Не обычно. Это действительно зависит от вашей настройки. Если вы запускаете только процесс с сервером (он же Rack Handler), который использует один и тот же объект приложения, это будет работать. Используется ли один и тот же экземпляр вашего приложения, зависит от используемой веб-платформы. Например, Sinatra создает новый экземпляр класса вашего приложения (обычно Sinatra::Application) для каждого запроса, если используется в качестве конечной точки Rack.

Возможен ли экземпляр на заказ классы и сохранить их во время приложения время жизни без использования сессий, хранилища базы данных или третье лицо Сервисы? Если да, то каковы последствия от потокобезопасности точка зрения?

Если вы действительно хотите продолжать занятия, вам, вероятно, понадобится что-то вроде maglev. Тем не менее, я считаю, что вы имеете в виду постоянные экземпляры пользовательских классов. Если вы не хотите использовать базу данных для сохранения (вы действительно должны), вы можете вернуться к PStore, который поставляется с Ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...