nginx-clojure v0.2.0 includes new features:
(1) non-blocking socket based on coroutine and compatible with largely existing java library such as apache http client, mysql jdbc drivers
(2) asynchronous callback API of socket for some advanced usage
(3) run initialization clojure code when nginx worker starting
(4) provide a build-in tool to make setting of coroutine based socket easier
(5) support Linux 32bit x86 now
(6) publish [binary release compiled with lastes stable nginx 1.6.0](https://sourceforge.net/projects/nginx-clojure/files/) about Linux x64, Linux i586, Win32 & MacOS X.
If the http service should do some slow I/O operations such as access external http service, database, etc. nginx worker will be blocked by those operations and the new user request even static file request will be blocked. It really sucks! Before v0.2.0 the only choice is using thread pool but now we have three choice Now:
(1) Coroutine based Socket -- Let MySQL JDBC Driver & Apache HttpClient Fly With Epoll/Kqueue on Nginx
(a) Java Socket API Compatible and work well with largely existing java library such as apache http client, mysql jdbc drivers etc.
(b) non-blocking, cheap, fast and let one java main thread be able to handle thousands of connections.
(c) Your old code **_need not be changed_** and those plain and old java socket based code such as Apache Http Client, MySQL mysql jdbc drivers etc. will be on the fly with epoll/kqueue on Linux/BSD!
(d) You must do some steps to get the right class waving configuration file and set it in the nginx conf file.
(2) Asynchronous Socket
More details here: https://github.com/nginx-clojure/nginx-clojure
(3) Thread Pool
More details here : https://github.com/nginx-clojure/nginx-clojure
More details please visit nginx-clojure github site : https://github.com/nginx-clojure/nginx-clojure