首页  

使用arthas 观察 temporal worker grpc 方法调用     所属分类 temporal 浏览量 580
watch io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub  *Task* '{method.name}'  -x 1

内部类用 $
method.name 只输出方法名

ts=2022-04-01 19:33:46; [cost=23.83277ms] result=@ArrayList[
    @String[respondWorkflowTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=22.053461ms] result=@ArrayList[
    @String[respondActivityTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=21.748461ms] result=@ArrayList[
    @String[respondWorkflowTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=21.623007ms] result=@ArrayList[
    @String[respondActivityTaskCompleted],
]
ts=2022-04-01 19:33:46; [cost=21.446144ms] result=@ArrayList[
    @String[respondWorkflowTaskCompleted],
    
ts=2022-04-01 19:34:05; [cost=25.288608ms] result=@ArrayList[
    @String[respondWorkflowTaskCompleted],
]


ts=2022-04-01 19:34:46; [cost=60028.259497ms] result=@ArrayList[
    @String[pollWorkflowTaskQueue],
]
ts=2022-04-01 19:34:46; [cost=60021.271157ms] result=@ArrayList[
    @String[pollActivityTaskQueue],
]
ts=2022-04-01 19:34:54; [cost=59085.731906ms] result=@ArrayList[
    @String[pollActivityTaskQueue],
]
ts=2022-04-01 19:34:55; [cost=60106.089911ms] result=@ArrayList[
    @String[pollWorkflowTaskQueue],
]
ts=2022-04-01 19:35:04; [cost=59069.627846ms] result=@ArrayList[
    @String[pollWorkflowTaskQueue],
    

worker 通过 grpc调用 pollActivityTaskQueue pollWorkflowTaskQueue 长轮询获取任务 执行完任务 , 通过grpc调用 respondActivityTaskCompleted respondWorkflowTaskCompleted 设置任务已完成 worker 和 temporal 来回都是通过 grpc 交互 一次工作流会有很多次 事件 ,这些都是 通过grpc来完成 因此一次工作流会涉及 多次 grpc调用 和 数据库读写 从 任务队列 分区 长轮询 事件 定时器 这些特性来看 ,temporal 的一些机制 跟 kafka有点像
工作流客户端 watch io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub * '{method.name}' -x 1 去掉 init 和 build 方法 调用以下 grpc 接口 startWorkflowExecution getWorkflowExecutionHistory
例子代码 EchoWorker 直接main 启动 EchoClientApp 直接main 启动 , 使用netty 暴露 http 接口用于提交工作流 http://127.0.0.1:8135/submitWorkflow?rt= rt 用于模拟任务处理耗时 http://127.0.0.1:8135/submitWorkflow?rt=1000 https://gitee.com/dyyx/hellocode/tree/master/demo/temporal/sdkdemo/src/main/java/com/dyyx/temporal/demo/echo
arthas使用 arthas watch 使用

上一篇     下一篇
temporal学习笔记

Temporal Server architecture

temporal 监控指标

temporal local activity vs activity

temporal 一些关键概念

CompletableFuture 实例