zeebe中的作业定时器(job)是能够执行工作流中的特定步骤的组件。
What is a Job?
作业是工作流中的工作项。 例如:
- 处理付款
- 生成PDF文档
- 在后端系统中更新客户数据
- 作业具有以下属性:
- 类型:描述工作项,并在工作流中的每个任务中定义。 工作人员引用该类型以请求他们能够执行的作业。
- 变量:工作程序执行其工作所需的工作流实例的上下文/业务数据。
- 自定义标题:工作流中定义的其他静态元数据。 主要用于配置用于多个工作流程步骤的工作程序。
Requesting Jobs from the Broker
定时器定期(即轮询)从broker请求某种类型的工作。 可以在Zeebe客户端中配置此间隔和请求的作业数。
如果所请求类型的一个或多个作业可用,则broker将向作业传输作业。 在接收到作业时,定时器执行这些作业,并根据作业是否成功完成,为每个作业发回完整或失败的消息。
例如,以下工作流可能会生成三种不同类型的作业:流程付款,提取项目和装运包裹:
三个不同的定时器,每个工作类型一个,可以申请Zeebe的工作:
许多定时器可以请求相同的工作类型以扩大处理。 在此方案中,代理确保将每个作业仅发送给其中一个定时器。
在请求作业时,可以设置以下属性:
- Worker:worker的标识符。 用于审计目的。
- Timeout:将工作分配给工人的时间。 如果作业未在此时间内完成,则可以再次向工人请求。
- MaxJobsToActivate:此请求应激活的最大作业数。
- FetchVariables:所需的变量名称列表。 如果列表为空,则请求工作流实例的所有变量。
Job Queueing
Zeebe将定时器与开展工作分开。 无论是否有定时器可以使用它们,总是可以以尽可能高的速率创建工作。 这是可能的,因为Zeebe将工作排队,直到定时器请求它们。 如果当前没有定时器请求工作,则工作仍然排队。 由于工人要求broker提供工作,定时器可以控制他们从事新工作的比率。
这允许broker处理突发的流量并有效地充当工作者面前的缓冲区。
zeebe qq交流群群号:856546010