C3 Free BPA Service User Guide

http://www.conby.com/page/create-c3-task-business-process-automation 简单说明

Task name: 必填,任务的名称,可用中文

Description: 描述任务,可用中文

Maillog:  如果填入为电子邮件,当task条件满足时,将会发送task的日志报告到填入的电子邮件

Conditions Type: 规定task的conditions(条件)之间的关系,OR为任意一个condition条件满足时触发action(动作). AND为所有condition条件同时满足时触发action(动作)

Condition Name: 必填,condition(条件)的名称,如果希望把本condition(条件)的结果作为变量在action(动作)中使用,请使用规范的变量字符(常规字符和数字,可含空格,空格在变量名中将自动转换为下划线)

Condition Type:

  • crontab 为标准的Linux/Unix的crontab格式,条件满足时触发action(动作)
  • post 为一个用户自定义的网址,系统将自动将payload使用HTTP协议的POST方法将数据发送过去,此时可以在eval中验证post回来的结果
  • api 为C3系统的API调用,可接受payload
  • due 为简单的时间到期检查,格式如 2010-01-01 10:30, 时间到达后,将自动触发 action(动作)
  • hook 为系统钩或回调, 可以直接获取到 其他task某个action(动作)的运行结果,并在eval中验证post回来的结果。payload中带loop表示为循环式的task,不会运行一次后终止。

Spec 为根据不同的condition(条件) Type,填入相应的格式或者名称

Payload 为不同的condition(条件) Type下的参数,只对 api, post, hook有效.  due和 crontab不需要填payload。 payload的格式为name=value&name2=value2, 其中value要求已经被urlencode, 系统的[result]将自动进行urlencode

eval 为Python规范的eval表达式,例如:

  • ‘aa’==’aa’
  • ‘[result]==’aa’, 其中[result]为系统token,表示前面的post,api或者hook的运行结果
  • 1, 如果想不验证运行结果,直接让条件满足触发后面的动作,可以简单填入1

当condition 的type为hook时, 在payload中支持如下参数,例如:

  • loop 表示循环等待事件消息, 一般为loop=1
  • out_key 用于获取有输出安全控制的事件消息源, 填入相应的密码即可
  • timeout 用于控制对多久时间更新的事件消息进行eval验证
  • session_key 用于控制分布式会话级的消息处理
  • email 用于控制输出log, 作用同 maillog
  • addRulename 用于控制hook运行时的规则, 当消息格式为json且包含add为首的变量,则自动填加相应的运行时eval规则
  • delRulename 用于删除hook的运行时规则。 此两参数可用于运行时自学习机制的智能消息处理。

Action Name: 动作的名称, 如果需要在其他任务的hook中被使用,请使用规范的规范的变量字符(常规字符和数字,可含空格)

Action Type:

  • api 为C3系统的API调用,可接受payload
  • post 为一个用户自定义的网址,系统将自动将payload使用HTTP协议的POST方法将数据发送过去
  • queue,基本与api相同,但此动作将会列入云计算平台的队列中异步执行,不会马上返回执行结果,如果希望获得此action的结果,请使用hook condition 方法
  • map-reduce, 基本与queue相同,此action动作专门为map-reduce类型的大规模云计算设计,action(动作)将会列入云计算平台的队列中异步执 行,不会马上返回执行结果,如果希望获得此action的结果,请使用hook condition 方法。如queue不同的是:
  1. Spec中需要填入完整的map-reduce api对。例如  c3_demo_mapper-c3_demo_reducer,用”-”分割,前面的代表map-reduce计算模型中的map方法,后面的代表map-reduce计算模型中的reduce方法
  2. Payload中需要指定map数据集,例如 map=1%2C2%2C3,%2C为“,”的urlencode后的表达方式。此例子表示map数据集有3项,分别为1,2,3。 常用的使用方式应该为map=[conditionname],直接使用condition(条件)的返回结果。系统将自动对 [conditionname]进行urlencode。
  3. map-redude计算模式一般在2~3分钟内启动计算,经过多轮的map,recuce运算后,计算结果可以使用hook condition 方法获取(需另外创建一个task来hook这个action的运算结果). maillog只会发送同步action(动作)的结果,不会发送异步和任何queue类型的action(动作)的结果
  4. 所有的condition都会自动生成以condition名为变量名的两个变量,例如名为c1的condition在action的payload中可以使用[c1]和[c1_json]进行访问。因此任何condition的运算结果都可以在action中进行访问。
  5. 要访问系统中python的api,可以在action的payload中输入py=模块名, spec照填API即函数名。
  6. payload中 in_key 表示消息输入的安全控制码。
  7. payload中 out_key 表示消息输出的安全控制码。
  8. payload中 sp 表示action的路由,用于支持独立多运营商模式。
  9. 此外当 spec 为 c3_request_reply 时, 还支持payload的 email 和 timeout 这两个参数, 用于异步邮件事务请求。

如果需要终止task,或者修改task,请使用 C3 SDK开发包,或者直接登录 BPA系统进行修改.  C3 SDK开发包下载地址:

http://www.conby.com/products_ch.html