共计 1595 个字符,预计需要花费 4 分钟才能阅读完成。
又填新性能了!从 1.8.0 版开始,SeaTable 开发者版退出了运行 Python 的能力(具体配置请查看使用手册),咱们能够更不便地疾速开发自定义数据处理流程了,让开发小利用变得更简略更有想象力。
SeaTable 是一个反对图片、文件、长文本等丰盛数据类型的新型协同表格和低代码平台。它的 API 提供了对记录的 CRUD 操作,也就是记录的创立、读取、更新、删除操作等。这样,咱们就能够把它当做一个轻量级的数据库来应用。
举例来说,平时咱们用 Python 脚本来写一些小利用的时候,如何保留、展示和共享数据是一个很麻烦的中央,而如果用 SeaTable 这个协同表格和低代码平台,咱们就能无效地简化小利用的开发。它提供了 Python 脚本的运行环境,咱们能够把脚本和数据放在一个中央治理,而不必再独自找一个服务器。
它为咱们提供的便当能够总结为以下几点:
- 能够在表格中存储多个脚本文件,一键点击就能够执行运行。
- 能够调度脚本每日运行,不须要本人再写一个 cron 工作。
- 能够在表格中减少按钮来调用脚本,让咱们的表格更像一个利用。
上面就来进一步理解。
点击脚本一键运行:
在表格中减少按钮来调用脚本:
Python 脚本运行器的实现原理
SeaTable 中的脚本是如何被执行的呢?上面咱们来理解一下。
架构
SeaTable 的 Python 脚本运行蕴含三个局部:SeaTable、SeaTable FAAS Scheduler、Python Runner,它们的性能与关系如下:
- SeaTable:新建、保留、批改脚本,发动运行申请等。
- SeaTable FAAS Scheduler:调度器,次要负责调度 SeaTable 运行脚本申请、安顿定时工作和保留、统计脚本运行后果等。相当于一个 master 节点。
- Python Runner:真正运行脚本,相当于一个 worker 节点。Python Runner 在收到一个脚本运行申请后,会下载脚本内容并启动一个 docker 容器来运行这个脚本。脚本运行完结后,容器主动销毁, 以此保障安全性。
Python Runner 和 SeaTable FAAS Scheduler 能够部署到同一机器,结构图如下:
如果你须要运行大量的 Python 脚本,那么能够多部署几台 Python Runner,在它们之前安顿一个 load balance 组件即可,结构图如下:
上下文环境
SeaTable 脚本的其中一个特色之处便是提供了上下文环境,在脚本中能够晓得用户以后焦点在哪个表格的哪一行。这样咱们就能针对这一行来执行一些操作。上面看一个简略的例子,就是用户点击按钮的时候,把以后行的内容发送到企业微信的群组中。如下所示:
import requests
from seatable_api import context
# 该脚本展现利用企业微信群组机器人,把表格中的一行数据发送到企业微信群组中
# 建设群机器人之后主动生成的 webhook 地址,能够通过 post 申请该地址进行音讯发送
WEBHOOK_URL = "XXXXX";
# 通过 context 来获取以后行的内容,格式化后发到企业微信
current_row = context.current_row
msg = format_msg("收到一笔费用", current_row)
requests.post(url=WEBHOOK_URL, msg, headers={ "Content-Type": "application/json"} )
总结
随着运行 Python 能力的退出,SeaTable 开发者版的 Python API 变得更加欠缺,让疾速开发自定义数据处理流程变得更不便了,对于咱们这些开发者来说,真的就是一款神器。而且它能够收费下载,公有部署,没有行数、存储量和 API 调用的限度。它还有好看易用的表格界面,能够多人实时协同。还具备弱小的表单和数据收集表性能。它非常适合于作为企业外部的数据合作核心,实现数据的集中管理、可视化和自动化。