|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 |
|
5 | | -### Health Checks |
| 5 | +### Falcon Server Container Health Checks |
6 | 6 |
|
7 | | -Falcon adds support for the `Async::Container` health check which detects hung processes and restarts them. The default health check interval is 30 seconds. |
| 7 | +{ruby Falcon::Service::Server} adds support for the {ruby Async::Container} health check which detects hung processes and restarts them. The default health check interval is 30 seconds. |
8 | 8 |
|
9 | | -`falcon serve` introduces a new `--health-check-timeout` option to configure the health check timeout. `falcon.rb`/`falcon host` can be changed using the `health_check_timeout` key within the `container_options` configuration - these are passed directly to `Async::Container`. If you don't want a health check, set `health_check_timeout` to `nil`. |
| 9 | +`falcon serve` introduces a new `--health-check-timeout` option to configure the health check timeout. `falcon.rb`/`falcon host` can be changed using the `health_check_timeout` key within the `container_options` configuration - these are passed directly to {ruby Async::Container}. If you don't want a health check, set `health_check_timeout` to `nil`. |
10 | 10 |
|
11 | 11 | ### Falcon Server Process Title |
12 | 12 |
|
@@ -37,3 +37,40 @@ The Falcon server process title is now updated periodically (alongside the healt |
37 | 37 | ## v0.47.8 |
38 | 38 |
|
39 | 39 | - Fix Falcon Supervisor implementation: due to invalid code, it was unable to start. |
| 40 | + |
| 41 | +# v0.45.0 |
| 42 | + |
| 43 | +## Compatibility Fixes |
| 44 | + |
| 45 | +During the `v0.44.0` release cycle, the workflows for testing older rack releases were accidentally dropped. As such, `v0.44.0` was not compatible with older versions of rack. This release restores compatibility with older versions of rack. |
| 46 | + |
| 47 | +Specifically, `protocol-rack` now provides `Protocol::Rack::Adapter.parse_file` to load Rack applications. Rack 2's `Rack::Builder.parse_file` returns both the application and a set of options (multi-value return). Rack 3 changed this to only return the application, as the prior multi-value return was confusing at best. This change allows `protocol-rack` to work with both versions of rack, and `falcon` adopts that interface. |
| 48 | + |
| 49 | +## Falcon Serve Options |
| 50 | + |
| 51 | +In addition, `falcon serve` provides two new options: |
| 52 | + |
| 53 | +1. `--[no]-restart` which controls what happens when `async-container` instances crash. By default, `falcon serve` will restart the container when it crashes. This can be disabled with `--no-restart`. |
| 54 | + |
| 55 | +2. `--graceful-stop [timeout]` which allows you to specify a timeout for graceful shutdown. This is useful when you want to stop the server, but allow existing connections to finish processing before the server stops. This feature is highly experimental and doesn't work correctly in all cases yet, but we are aiming to improve it. |
| 56 | + |
| 57 | +# v0.44.0 |
| 58 | + |
| 59 | +## Falcon Host |
| 60 | + |
| 61 | +`async-service` is a new gem that exposes a generic service interface on top of `async-container`. Previously, `falcon host` used `async-container` directly and `build-environment` for configuration. In order to allow for more generic service definitions and configuration, `async-service` now provides a similar interface to `build-environment` and exposes this in a way that can be used for services other tha falcon. This makes it simpler to integrate multiple services into a single application. |
| 62 | + |
| 63 | +The current configuration format uses definitions like this: |
| 64 | + |
| 65 | +```ruby |
| 66 | +rack 'hello.localhost', :self_signed_tls |
| 67 | +``` |
| 68 | + |
| 69 | +This changes to: |
| 70 | + |
| 71 | +```ruby |
| 72 | +service 'hello.localhost' do |
| 73 | + include Falcon::Environment::Rack |
| 74 | + include Falcon::Environment::SelfSignedTLS |
| 75 | +end |
| 76 | +``` |
0 commit comments