原创

Zeebe Docs翻译:2.3 Job Worker

温馨提示:
本文最后更新于 2019年10月08日,已超过 1,664 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

一个job worker是一个能够执行工作流中特定步骤的组件。

什么是Job?

Job是工作流中工作项例如:

  • 处理付款
  • 生成PDF文档
  • 在后端系统中更新客户数据

作业具有以下属性:

  • 类型:描述工作项,并在工作流的每个任务中定义。工人引用该类型以请求他们能够执行的工作。
  • 变量:工作人员执行工作所需的工作流实例的上下文/业务数据。
  • 自定义标题:工作流程中定义的其他静态元数据。通常用于配置用于多个工作流程步骤的工作程序。

向经纪人索取工作

作业人员每隔一定的时间间隔(即轮询)向经纪人请求某种类型的作业。此间隔和请求的作业数可以在Zeebe客户端中配置。

如果有一个或多个所请求类型的作业可用,则代理会将作业流式传输给工作人员。接收到作业后,工作人员将执行这些作业,并根据作业是否可以成功完成来发送每个作业完成失败消息。

例如,下面的工作流可能产生三种不同类型的作业:process-paymentfetch-itemsship-parcel

订单工作流程模型

三种不同的工作工人,每种工作类型各一名,可以向Zeebe请求工作:

zeebe工作工人要求工作

许多工人可以请求相同的工作类型,以扩大处理规模。在这种情况下,代理确保将每个作业仅发送给其中一个工人。

在请求作业时,可以设置以下属性:

  • 工作者工作者的标识符。用于审计目的。
  • 超时:将工作分配给工人的时间。如果作业在这段时间内未完成,则可以再次要求工人提出。
  • MaxJobsToActivate:此请求应激活的最大作业数。
  • FetchVariables:所需变量名称的列表。如果列表为空,则请求工作流实例的所有变量。

工作队列

Zeebe将创建作业与执行作业分离开来。始终可以以尽可能高的速度创建工作,而不管是否有工人在工作。这是可能的,因为Zeebe将作业排队直到工人要求他们为止。如果当前没有作业工作者正在请求作业,则作业将排队。由于工人要求经纪人提供工作,因此工人可以控制接受新工作的速度。

这使代理可以处理突发流量,并有效地充当作业人员面前的缓冲区

正文到此结束
本文目录