所以我有一个使用restas的应用程序,基于hunchentoot。
在某些时候,我有以下功能:
(defun main (args)
(declare (ignore args))
(set-config)
(restas:start '#:spa :port 8080))
(set-config)
设置了一些与数据库相关的值。
无论如何,我以下列方式使用buildapp
:
buildapp --output dist/spa --load-system spa --asdf-tree ~/quicklisp/ --entry spa::main --compress-core
完美无缺。 (set-config)
函数需要存在config.json
文件,当文件不存在时它确实不起作用,因此我确信应用程序已正确编译。
但是,当我运行生成的二进制文件时,应用程序会立即返回。这意味着HTTP服务器不会熬夜。
我猜测它与hunchentoot产生一个新线程的事实有关,但它应该不会停止该过程,是吗?
此外,我不想不使用线程,即我希望每个请求都是一个单独的线程。
所以...我不确定它为什么会立即返回。为什么?以及如何解决它?
答案 0 :(得分:2)
我猜你必须进入一个主循环来保持程序运行。 http://www.xach.com/lisp/buildapp/上的示例使用特定于SBCL的(sb-impl::toplevel-repl nil)
。