跳转到主要内容

如果Datasette在指定时间内没有收到流量,则退出Datasette

项目描述

datasette-scale-to-zero

PyPI Changelog Tests License

如果Datasette在指定时间内没有收到流量,则退出Datasette

一些托管服务提供商,如Fly,提供了一个缩放到零的机制,其中服务器可以关闭,并在有新流量到达时自动启动。

此插件可用于配置Datasette在接收到最后一个请求后X分钟(或秒,或小时)退出。它还可以使Datasette服务器在配置的最大时间后退出,无论是否有流量。

安装

在Datasette相同的环境中安装此插件。

datasette install datasette-scale-to-zero

配置

只有在此插件配置后才会生效。

将以下内容添加到您的metadata.jsonmetadata.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 (9.7 kB 查看哈希值)

上传时间

构建分布

datasette_scale_to_zero-0.3.1-py3-none-any.whl (9.0 kB 查看哈希值)

上传时间 Python 3

由以下机构支持