我不知道如何表达这一点,但任何关于如何实现以下行为的想法都将是很棒的。
我有一个web服务器,它可以对命令行程序进行长时间的调用。我希望服务器处理多个长时间运行的调用,但在调用完成之前不返回给定的请求。这不是一个网站,所以它是好的,调用运行很长时间,客户端也不会超时。对如何实现这一点有什么想法吗?
这个链接相关吗?用clojure编写多路复用服务器?
发布于 2014-07-01 22:03:14
假设Luminus生成一个war文件(我认为它会生成war文件,因为它运行在ring和compojure上),那么它已经是“多线程”了,因为当您在tomcat或jetty中运行该war文件时,每个请求都会得到自己的线程。
客户端可以将其套接字读取超时设置为无穷大,它们将永远等待。
发布于 2014-07-02 12:44:51
如果除了CPU使用之外,您的调用时间很长,那么最好的选择是在uberjar中使用http-kit或aleph。与其他服务器不同,http-kit和aleph在每个请求中使用线程池而不是线程,而且如果您有任何瓶颈(例如,任意睡眠时间、网络或磁盘io等),那么线程池的性能将比每个请求的线程要好得多。
http-kit客户端/环形服务器
https://stackoverflow.com/questions/24519429
复制相似问题