【问题标题】:Common Lisp: What's the best way to use libraries in a shared hosting environment?Common Lisp:在共享托管环境中使用库的最佳方式是什么?
【发布时间】:2009-04-08 04:12:28
【问题描述】:

前几天我在考虑这个问题,想看看 SO 社区对这个主题有什么看法。

就目前而言,Common Lisp 作为一个 Web 开发平台受到了一些关注,并且有充分的理由(我相信你已经对此深信不疑)。

我想知道如何以类似于 PHP 的方式在共享环境中使用库。

如果我设置 SBCL 之类的东西作为解释器来解释 Python 或 PHP 等 FASL 文件,那么使用库的最佳方式是什么(例如 clsql)。

大多数是 asdf 可安装库,但每次发出请求时都要求并安装库将是一笔愚蠢的开销。

请记住,这是针对共享主机;最好..

1) 安装系统范围的库副本以用于应用程序;减少空间,但使用正确版本的库可能会出现问题。

2) 允许用户(通过控制面板)为自己安装本地副本;更多空间,没有版本问题。

3) 告诉他们将其包装到一个模块中并像 Python 那样按需加载它(我不确定是否/如何使用 Lisp 来完成)。仅仅能够加载一个库以供使用将是最好的选择,但我认为它们中的很多都不是为了这种方式使用而设计的。

不管怎样,想听听你的意见,谢谢。

【问题讨论】:

    标签: shared-libraries common-lisp shared-hosting


    【解决方案1】:

    我有两种看待它的方式:

    1. 为每个请求启动一个 Lisp

      这样,Lisp 是一个保存了所有必要库和数据的图像会更好。但这种方法在我看来不是很有希望。

    2. 运行 Lisp 并让前端(网络浏览器、另一个网络服务器……)连接到它

      通过这种方式,您可以启动一个保存的图像或一个 Lisp,它会一次性加载一堆东西并为请求提供服务。

    我喜欢在部署场景中使用保存的图像/应用程序。它们可以快速启动,包含所有必要的软件,并且不受库更改的影响。

    因此,提供包含必要软件的预配置 Lisp 图像或让用户配置和保存图像可能会很有用。

    【讨论】:

    • 为每个用户提供预配置图像的唯一原因是它需要来自前端服务器的大量套接字连接(每个站点一个)。我不确定这将如何影响性能。不过我会研究一下,先从简单的开始,然后再进行更复杂的设置。
    猜你喜欢
    • 2010-09-12
    • 2020-08-30
    • 2023-03-15
    • 2015-07-12
    • 1970-01-01
    • 2010-09-07
    • 2015-07-25
    • 2014-06-25
    • 2011-05-02
    相关资源
    最近更新 更多