跳到主要内容

执行器类

Class: FunctionExecution

CloudPSS 当前执行器类。

functionExecution.id

执行器被创建时的任务ID。

functionExecution.functionId

执行器被创建时的任务函数ID。

functionExecution.executorId

执行器被创建时的执行器ID。

functionExecution.executorName

执行器被创建时的执行器名称。

functionExecution.executorVersion

执行器被创建时的执行器版本。

functionExecution.apiUrl

执行器被创建时的api地址。

functionExecution.gqlUrl

执行器被创建时的gql地址。

functionExecution.token

执行器被创建时的任务token。

functionExecution.functionToken

执行器被创建时的函数token。

functionExecution.args

执行器被创建时的函数参数。

FunctionExecution.current()

  • 静态方法
  • Returns: FunctionExecution 返回当前执行的 FunctionExecution 单例

获取当前执行的 FunctionExecution 单例。

FunctionExecution.current()

functionExecution.exit(code)

  • code: Number;程序退出码
  • Returns: Number;运行成功返回 0,否则返回非 0

结束任务。调用此函数将导致进程直接终止,调用前请完成清理工作。

f = FunctionExecution.current()
f.exit(0)
备注

当任务未被取消时,分别被标记为 'resolved''rejected;

当任务被取消时,分别被标记为 'aborted''rejected'

functionExecution.plot(traces=[], layout={}, title='', key=None, verb='replace')

  • 实例方法
  • traces: List 图表数据
  • layout: Dict 图表布局
  • title: String 图表标题
  • key: String 图表key
  • verb: String 特殊谓词,图表操作类型:
    • replace 插入内容
    • append 追加内容

发送图表信息。

f = FunctionExecution.current()
f.plot(traces=[], layout={}, title='', key=None, verb='replace')

functionExecution.table(columns=[], title='', key=None, verb='replace')

  • 实例方法
  • columns: List 按列分组的表格内容
  • title: String 表格标题
  • key: String 表格消息 key,用于在多个消息中引用同一消息实体,以便进行更新,或将指定 key 的消息放入容器
  • verb String 特殊谓词,表格操作类型:
    • replace 插入内容
    • append 追加内容

发送表格信息。

f = FunctionExecution.current()
f.table(columns=[
{ 'name': 'col1', 'type': 'text', 'data': ['a', 'b', 'c'] },
{ 'name': 'col2', 'type': 'number', 'data': [1, 2, 3] },
], title='', key=None, verb='replace')

functionExecution.log(content, level='info', html=False, key=None)

  • 实例方法
  • contentString 日志内容
  • levelString 日志级别:
    • info: 运行信息
    • warning:警告信息
    • error: 错误信息
    • verbose: 详细信息
    • debug:调试信息
    • critical: 严重信息
  • html: Boolean 是否为 html 内容
  • key: String 日志消息 key,用于在多个消息中引用同一消息实体,以便进行更新,或将指定 key 的消息放入容器

发送日志消息。

f = FunctionExecution.current()
f.log("日志测试内容", level='info', html=False, key=None)

functionExecution.container(items=[], layout={'type': 'tabs','position': 'top'}, key=None)

  • 实例方法
  • items: List 分组成员,如 [{'title': 'tab1', 'placeholder': 'Data loading', 'html': false, 'query': {'type': 'message', 'key': 'item-1'}}]
  • position: Dict 分组布局,如无特殊需求请直接使用 {@link tabsContainer}{@link gridContainer}
  • key: String 消息 key,用于在多个消息中引用同一消息实体,以便进行更新,或将指定 key 的消息放入容器

发送分组消息。

f = FunctionExecution.current()
f.container([{'title': 'tab1', 'placeholder': 'Data loading', 'html': false, 'query': {'type': 'message', 'key': 'item-1'}}], layout={'type': 'tabs','position': 'top'}, key=None)

functionExecution.tabsContainer(items=[], position='top', key=None)

  • 实例方法
  • items: List 分组成员,如 [{'title': 'tab1', 'placeholder': 'Data loading', 'html': false, 'query': {'type': 'message', 'key': 'item-1'}}]
  • position: String tab 位置:
    • top: 上
    • bottom: 下
    • left: 左
    • right: 右
  • key: String 消息 key,用于在多个消息中引用同一消息实体,以便进行更新,或将指定 key 的消息放入容器

发送 tabs 布局分组消息。

f = FunctionExecution.current()
f.tabsContainer([
{ 'title': 'tab1', 'placeholder': 'Data loading', 'html': false, 'query': { 'type': 'message', key: 'message-key-1' } },
{ 'title': 'tab2', 'placeholder': 'Data loading', 'html': false, 'query': { 'type': 'message', 'key': 'message-key-2' } },
], position='top', key=None)

functionExecution.gridContainer(item=[], grid="'item1 . item2' 1fr 'item1 item3 item4' 1fr / 1fr auto 2fr", key=None)

  • 实例方法
  • item: List 分组成员,如 [{title: 'item1', placeholder: 'Data loading', html: false, query: {type: 'message', key: 'item-1'}}]
  • grid: String grid 布局,如 'item1 . item2' 1fr 'item1 item3 item4' 1fr / 1fr auto 2fr,详情参见 grid布局
  • key: String 消息 key,用于在多个消息中引用同一消息实体,以便进行更新,或将指定 key 的消息放入容器

发送 grid 布局分组消息。

f = FunctionExecution.current()
f.gridContainer([
[
{ 'title': 'item1', 'placeholder': 'Data loading', 'html': False, 'query': { 'type': 'message', 'key': 'message-key-1' } },
{ title: 'item2', placeholder: 'Data loading', html: False, query: { type: 'message', key: 'message-key-2' } },
{ title: 'item3', placeholder: 'Data loading', html: False, query: { type: 'message', key: 'message-key-3' } },
], `'item1 item2' 1fr 'item3 item3' 2fr / 1fr 2fr`, key=None)

functionExecution.progress(value=0, title='', key='progress-1')

  • 实例方法
  • value: Number 当前进度值,取值范围 0~1
  • title: String 进度标题
  • key: String 消息 key,用于在多个消息中引用同一消息实体,以便进行更新,或将指定 key 的消息放入容器,默认为: progress-1

发送进度信息。

f = FunctionExecution.current()
f.progress(0.1, '测试进度消息', 'progress-1')

functionExecution.on_abort(func, args=[], kwargs={})

  • 实例方法
  • func: 响应后的回调函数
  • args: List 回调函数参数
  • kwargs: Dict 回调函数参数

监听前台的终止事件。

def exitCallback(a, b, c, d):
print('收到前台的退出通知,我准备退出,最后做点什么再关闭程序')
print("从 args 传入参数: 结束前做最后计算 a+b={0}".format(a + b), flush=True)
print("从 kwargs 传入参数", c, d, flush=True)
time.sleep(2)
print('我退出了')
job.exit(0)

f = FunctionExecution.current()
f.on_abort(exitCallback, args=(1, 2), kwargs={"c": 3, "d": {'e': 4}})