Sinatra / Rails: сохраняют экземпляры пользовательских классов во время жизни приложения

StackOverflow https://stackoverflow.com/questions/2705550

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top