我可以断言Rails/Sinatra应用程序仅初始化一次,并且所有请求共享同一应用程序实例?还是新请求产生新的应用程序实例?

是否可以实例自定义类并在App Lifetime中坚持使用,而无需使用会话,数据库存储或第三方服务?如果是这样,从线程安全的角度来看有什么含义?

我正在尝试弄清楚如何实现基于Web的下载管理器,并且目前正在评估基于Ruby的框架。

有帮助吗?

解决方案

我可以断言Rails/Sinatra应用程序仅初始化一次,并且所有请求共享同一应用程序实例?还是新请求产生新的应用程序实例?

不普遍。这确实取决于您的设置。如果您仅使用重复使用相同应用程序对象的服务器(又名机架处理程序)运行,这将起作用。使用应用程序的同一实例是否取决于您正在使用的Web框架。例如,Sinatra创建了您的应用程序类的新实例(通常 Sinatra::Application)对于每个请求,如果用作机架端点。

是否可以实例自定义类并在App Lifetime中坚持使用,而无需使用会话,数据库存储或第三方服务?如果是这样,从线程安全的角度来看有什么含义?

如果您真的想坚持下课,则可能需要像Maglev这样的东西。但是,我相信您的意思是坚持自定义课程的实例。如果您不想使用数据库进行持久性(您真的应该),则可以返回到PSTORE,该Pstore与Ruby一起运送。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top