This WSGI server enables non-blocking HTTP io, supports various processes & threads, and facilitates seamless automatic upgrading of code.
The software supports multiple Python processes and comes with a built-in threadpool for users to choose from. Depending on your WSGI application's state storage process, users can opt for running a single or multiple Python processes. If your application stores state in memory, you can configure Spawning to run one Python process, which will enable all requests to access the application state. However, multiple processes are suitable for applications without state sharing.
Spawning allows users to tailor their software to handle their application's specific needs. For instance, if you want to run a small-scale application with a large number of simultaneous requests such as a COMET or AJAX-polling server, you can use greenlet microthreads to run a single main thread in each process. However, most conventional WSGI applications perform blocking operations such as database calls that perform blocking socket operations. The best approach, in this case, would be to use a combination of multiple processes and multiple threads to optimize performance.
Another feature that makes Spawning unique is its graceful code reloading process. The software continuously watches all Python files imported into sys.modules for changes and performs a smooth reload on change. Existing processes are warned to stop accepting all requests and finish any outstanding requests they are servicing before shutting down. Meanwhile, new processes with updated code are started, and users do not experience 'connection-refused' errors during the reload.
In summary, Spawning is a robust software for users looking for a dependable application that guarantees fast, efficient, and uninterrupted performance for their WSGI applications. It is scalable and easily configurable, making it ideal for a broad range of situations.
Version 0.9.2: N/A