Slack的Celery扩展。
项目描述
Celery-slack是一个Celery扩展,它将消息发布到Slack频道,涉及Celery应用程序、其beat计划以及其工作任务的执行。这些消息可以链接到Flower任务页面。
先决条件
要使用此包,您需要一个属于您Slack工作空间的Slack应用程序。您可以从此页面创建应用程序。此应用程序应在您的Slack频道中注册一个入站webhook。有关更多信息,请参阅Slack入站webhook。
安装
Celery-slack是可在PyPI上找到的python包。您可以使用pip安装它
pip install celery-slack
基本用法
celery-slack最基本的使用需要Celery实例对象和一个对应于Slack频道的Slack webhook。一个简单的例子可能看起来像这样
from celery import Celery
from celery_slack import Slackify
SLACK_WEBHOOK = 'https://hooks.slack.com/services/XXX/YYY/ZZZ'
app = Celery('project')
app.config_from_object('project.config')
slack_app = Slackify(app, SLACK_WEBHOOK)
if __name__ == '__main__':
app.start()
高级用法
Celery-slack 提供了多种配置选项来自定义 Slack 消息的外观和输出。以下是扩展程序的默认选项:
DEFAULT_OPTIONS = {
"slack_beat_init_color": "#FFCC2B",
"slack_broker_connect_color": "#36A64F",
"slack_broker_disconnect_color": "#D00001",
"slack_celery_startup_color": "#FFCC2B",
"slack_celery_shutdown_color": "#660033",
"slack_task_prerun_color": "#D3D3D3",
"slack_task_success_color": "#36A64F",
"slack_task_failure_color": "#D00001",
"slack_request_timeout": 1,
"flower_base_url": None,
"show_celery_hostname": False,
"show_task_id": True,
"show_task_execution_time": True,
"show_task_args": True,
"show_task_kwargs": True,
"show_task_exception_info": True,
"show_task_return_value": True,
"show_task_prerun": False,
"show_startup": True,
"show_shutdown": True,
"show_beat": True,
"show_broker": False,
"use_fixed_width": True,
"include_tasks": None,
"exclude_tasks": None,
"failures_only": False,
"webhook": None,
"beat_schedule": None,
"beat_show_full_task_path": False,
}
可以将这些选项的任何子集以关键字参数的形式传递给构造函数。例如:
options = {
# Some subset of options
}
app = Celery('project')
slack_app = Slackify(app, SLACK_WEBHOOK, **options)
大多数选项都是自我解释的,但这里有一些额外的细节。
- slack_*_color:与 Slack 消息附件相关联的左侧垂直条颜色。
slack_request_timeout:Slack 消息请求超时时间(秒)。
- flower_base_url:例如,https://flower.example.com,如果提供,Slack 消息标题将链接到 Flower 中的任务页面。Flower
show_task_id:显示任务的 uuid。
show_task_execution_time:显示完成任务的时间(分钟/秒)。
show_celery_hostname:在 celery/beat 消息中显示机器主机名。
show_task_args:显示任务的参数。
show_task_kwargs:显示任务的键值参数。
show_task_exception_info:显示失败任务的回溯信息。
show_task_return_value:显示成功任务的返回值。
show_task_prerun:在任务执行开始时发布消息。
show_startup:当 celery 开始时发布消息。
show_shutdown:当 celery 停止时发布消息。
show_beat:当 beat 开始时发布消息。
- show_broker:当 celery/beat 从或重新连接到代理时发布消息。
- use_fixed_width:使用 Slack 固定宽度格式化参数、kwargs、retval 和异常信息。
- include_tasks:要包含的任务路径列表。如果使用,仅针对这些任务发布任务消息。使用正则表达式模式匹配。例如,对于特定任务 module.submodule.taskname 或该子模块中的所有任务 module.submodule。不能与 exclude_tasks 一起使用。
- exclude_tasks:要排除的任务路径列表。如果使用,仅针对这些任务抑制任务消息。其他所有任务将生成 Slack 消息。不能与 include_tasks 一起使用。使用正则表达式模式匹配。
failures_only:仅针对任务失败发布消息。
- webhook:唯一的必需参数。对应 Slack 通道的 Slack webhook。
- beat_schedule:celery beat 调度。如果提供,beat_init 消息将显示该调度。
- beat_show_full_task_path:显示完整的模块-任务路径。如果为 False(默认值)则仅显示 submodule.taskname。
警告
请注意,Slack 为入站 webhook 请求设置了 速率限制,大约为每秒 1 请求。此扩展程序尽量遵守这些速率限制。您应确保您的 celery-slack 实现通过调整任务计划或使用 include_tasks 或 exclude_tasks 选项限制生成 Slack 消息的任务集来不违反这些限制。
如果 webhook 响应包含响应代码 429,celery-slack 将抑制由 Retry-After 响应头给定的时间段内的所有消息。返回后,celery-slack 将向 Slack 发布一条警告消息。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
哈希值 for celery_slack_webhooks-0.4.6-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8dab42d9926a27b8bb85e54053b76482680605204f951b63193fcdebf301b1bd |
|
MD5 | 4ea7fabcb9f077d6c36d4a08d1a25b01 |
|
BLAKE2b-256 | b56702778ba9cace4cdb37c016bc76747ba065f8c7e8df92b0ceb30fdfa47f07 |