datasette-scale-to-zero
Quit Datasette if it has not received traffic for a specified time period
Some hosting providers such as Fly offer a scale to zero mechanism, where servers can shut down and will be automatically started when new traffic arrives.
This plugin can be used to configure Datasette to quit X minutes (or seconds, or hours) after the last request it received.
Installation
Install this plugin in the same environment as Datasette.
datasette install datasette-scale-to-zero
Configuration
This plugin will only take effect if it has been configured.
Add the following to your metadata.json
or metadata.yml
configuration file:
{
"plugins": {
"datasette-scale-to-zero": {
"duration": "10m"
}
}
}
This will cause Datasette to quit if it has not received traffic for 10 minutes.
You can set this value using a suffix of m
for minutes, h
for hours or s
for seconds.
Development
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-scale-to-zero
python3 -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest