当前位置: 首页 > news >正文

【Temporal】方法规范

在workflow或者childWorkflow的方法代码中,不能使用golang的一些库方法,比如sleep,go协程等,必须使用其对应的封装方法,比如对应关系如下:

  • time.Sleep -> workflow.Sleep

  • go xx -> workflow.Go(xx)

这是因为workflow或者childWorkflow代码是在workflow的线程或者协程中调度的,任务的控制不能交给golang处理。

而对于activity的方法代码中,就应该使用golang的库方法,而不是workflow的封装方法。

换句话说:

  • workflow或者childWorkflow方法代码应该只包含编排/管理其他工作流实体(如activity/childWF/channel/等)的逻辑;

  • activity方法代码才是具体的业务逻辑。

这也是temporal提倡的代码规范

从workflow和activity的方法定义我们也可以知道:
对于activity来说,方法定义的第一个参数必须是golang 的context:

func StartCteTaskActivity(ctx context.Context, xx, xx) (xx, error)

对于workflow来说,方法定义的第一个参数必须是workflow 的context

func RunTimeNodeMonitorWorkflow(wfCtx workflow.Context, xx, xx) (xx, error)

https://community.temporal.io/t/workflow-sleep-details/1161

http://www.lryc.cn/news/443410.html

相关文章:

  • Python实现图形学曲线和曲面的Bezier曲线算法
  • Unity数据持久化4——2进制
  • 经典sql题(八)SQL 查询详细指南总结一
  • 用Python实现时间序列模型实战——Day 30: 学习总结与未来规划
  • ChatGPT居然主动勾引用户,OpenAI又测试新功能? 一文教你学会订阅
  • 基于SpringBoot+Vue的考研百科网站系统
  • 深度之眼(三十)——pytorch(一)--深入浅出pytorch(附安装流程)
  • 麒麟银河桌面版,成功安装cuda12.6,mysql
  • CentOS 7 YUM源不可用
  • Java反序列化利用链篇 | URLDNS链
  • Android 短信验证码自动填充
  • 数据库 MySQL 是否需要容器化?
  • Kettle的安装及简单使用
  • Golang | Leetcode Golang题解之第420题强密码检验器
  • 面试金典题3
  • FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频
  • Python使用总结之py-docx将word文件中的图片保存,并将内容返回
  • Radware 报告 Web DDoS 攻击活动
  • OpenCV运动分析和目标跟踪(2)累积操作函数accumulateSquare()的使用
  • PCIe进阶之TL:Common Packet Header Fields TLPs with Data Payloads Rules
  • Linux之实战命令01:xargs应用实例(三十五)
  • Redisson实现分布式锁(看门狗机制)
  • 记录一次显卡驱动安装
  • nginx的作用是什么
  • 【全网最全】2024年华为杯研赛B题成品论文获取入口(后续会更新)
  • 计算机网络(八) —— Udp协议
  • 【Linux篇】TCP/IP协议(笔记)
  • std::pair和std::tuple
  • Access denied for user ‘root‘@‘114.254.154.110‘ (using password: YES)
  • 深度学习03-神经网络01-什么是神经网络?