gpt4 book ai didi

webserver - hunchentoot session- v. thread-localized values (ccl)

转载 作者:太空宇宙 更新时间:2023-11-03 19:03:15 24 4
gpt4 key购买 nike

我正在使用 hunchentoot session 值使我的服务器代码可重入。问题是,根据定义, session 值在 session 期间保留,即从同一浏览器的一个调用到下一个,而我真正要寻找的是线程特定的重入,所以所有的值在调用之间消失——我想将每次点击视为单独的“从头开始”事件,即使它们来自同一 session 。很容易将驱动程序设置为零,或删除我的 session 值,但我想知道是否有“正确”的方法来做到这一点?我在文档中没有看到任何基于线程的 hunchentoot:session-value 类比。

提前感谢您提供的任何指导。

最佳答案

如果您希望一个值是“线程特定的”,同时对每个请求都是“从头开始”,则需要每个请求都必须在一个全新的线程中分派(dispatch)。根据 Hunchentoot 文档,情况并非如此,它表示支持两种模型:单线程 taskmaster 和每个连接线程 taskmaster。

如果您的配置是多线程的,那么请求处理中绑定(bind)的特定于线程的变量因此可以预期是针对每个连接的。在单线程 Hunchentoot 设置中,它实际上是全局的,绑定(bind)到请求服务线程。

hunchentoot:session-value 的基于线程的模拟可能不存在,因为它只会将行为引入 Web 应用程序,如果线程模型被重新配置,或者如果请求浏览器的模式发生变化。浏览器可以使用同一个连接发出多个请求,或者关闭请求之间的连接。

为了使用自定义的每个请求扩展 request 对象,我可能会研究 acceptor 的子类化(文档中描述了如何做到这一点) .我的自定义 acceptor 将具有 process-connection 通用函数的自定义方法,该方法将创建扩展/子类 request 对象,其中包含我想要的额外内容放入请求

另一种方法是使用一些全局弱哈希将 request 对象绑定(bind)为附加信息的键。

关于webserver - hunchentoot session- v. thread-localized values (ccl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45683364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com