如果Datasette在指定时间内没有收到流量,则退出Datasette
项目描述
datasette-scale-to-zero
如果Datasette在指定时间内没有收到流量,则退出Datasette
一些托管服务提供商,如Fly,提供了一个缩放到零的机制,其中服务器可以关闭,并在有新流量到达时自动启动。
此插件可用于配置Datasette在接收到最后一个请求后X分钟(或秒,或小时)退出。它还可以使Datasette服务器在配置的最大时间后退出,无论是否有流量。
安装
在Datasette相同的环境中安装此插件。
datasette install datasette-scale-to-zero
配置
只有在此插件配置后才会生效。
将以下内容添加到您的metadata.json
或metadata.yml
配置文件中
{
"plugins": {
"datasette-scale-to-zero": {
"duration": "10m"
}
}
}
这将导致Datasette在10分钟内没有收到任何HTTP流量时退出。
您可以使用m
后缀设置分钟,h
后缀设置小时或s
后缀设置秒。
要使Datasette在运行时间超过特定时间时退出,请使用"max_age"
{
"plugins": {
"datasette-scale-to-zero": {
"max_age": "10h"
}
}
}
此示例将在Datasette服务器运行超过10小时后退出。
您可以在同一配置文件中将"duration"
和"max_age"
一起使用
{
"plugins": {
"datasette-scale-to-zero": {
"max_age": "10h",
"duration": "5m"
}
}
}
此示例将在5分钟内没有收到流量或服务器运行10小时后退出。
配置关闭HTTP消息
您还可以配置插件在退出前向某处发送HTTP请求,使用"shutdown_url"
选项。
{
"plugins": {
"datasette-scale-to-zero": {
"duration": "10m",
"shutdown_url": "https://example.com/shutdown"
}
}
}
您可以使用"shutdown_headers"
添加额外的GET请求头,例如发送授权头。
{
"plugins": {
"datasette-scale-to-zero": {
"duration": "10m",
"shutdown_url": "https://example.com/shutdown",
"shutdown_headers": {
"Authorization": "Bearer secret"
}
}
}
}
使用"shutdown_method"
设置不同的HTTP方法,例如POST
。您还可以设置shutdown_body
以指定请求中应发送的正文。
{
"plugins": {
"datasette-scale-to-zero": {
"duration": "10m",
"shutdown_url": "https://example.com/shutdown",
"shutdown_method": "POST",
"shutdown_headers": {
"Authorization": "Bearer secret",
"Content-Type": "application/json"
},
"shutdown_body": "{\"message\": \"shutting down\"}"
}
}
}
开发
要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境。
cd datasette-scale-to-zero
python3 -m venv venv
source venv/bin/activate
现在安装依赖项并测试依赖项。
pip install -e '.[test]'
要运行测试
pytest
项目详情
关闭
datasette-scale-to-zero-0.3.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 00142ee91b1c44a1cb905e9fecfd9fc4b29a4fe5bc20a946f291140d4d513563 |
|
MD5 | b35ad3cfb99b5c1f7154af54100ee5e7 |
|
BLAKE2b-256 | e0c4ab251b2fb273855c485ac845d413054b8bf6ca9a69fc29a10b4a71c4c7af |
关闭
datasette_scale_to_zero-0.3.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6e8039639c79259695ce669599ad78a478217ee580f132ae110d1ff414774e7a |
|
MD5 | b1080d701a1c302fd79c3f37a96f3ce0 |
|
BLAKE2b-256 | 30beed2f7be90b9105b6c42830bbabddd6eae769f1018223b35fc30f2b131cd6 |