API v1

运行与生命周期

说明后台的启动、就绪、停止和异常退出。

Plugin API v1

Documentation content is currently available in Simplified Chinese.

每个启用的插件拥有一个独立的 Node.js 后台进程。飞块提供运行时和 SDK 路径,插件入口负责加载 SDK 并调用 definePlugin()。

#启动

SDK 注册处理函数后,调用 onStart(context)。这个函数完成后,SDK 发送就绪信息,飞块核对实际注册的动作、服务和超级块处理函数。

初始化失败时,后台报告错误,插件不会进入运行状态。因此,把必要的连接和初始数据加载放在 onStart() 中,让失败直接暴露在启动阶段。定时更新可以在初始化成功后启动定时器。

js
let timer;
definePlugin({
  async onStart(context) {
    await refresh(context);
    timer = setInterval(() => refresh(context).catch(console.error), 5000);
  },
  onStop() {
    clearInterval(timer);
  }
});

这里的 refresh() 由插件实现,用于获取并发布数据。

#停止

用户禁用插件或飞块退出时,宿主请求后台停止,SDK 调用 onStop()。在这里关闭连接、清理定时器和完成必要的资源释放。

#异常退出

后台崩溃或失去响应时,飞块把插件标记为错误,结束正在等待的请求,并清理插件发布的状态。用户重新启用后,会启动新的进程,重新运行 onStart()。

需要跨重启保存业务数据时,插件自行保存业务数据,并在下次启动时恢复和重新发布。进程内变量随着进程结束而丢失。