当前位置: 首页 > 知识库问答 >
问题:

优步Cadence中延迟任务的好用例是什么?

徐茂材
2023-03-14

我想实现一个延迟任务,发现了一个cadence cron例子,如何用cadence实现一个延迟任务?

共有2个答案

梅玉堂
2023-03-14

Cadence支持活动和工作流延迟。

活动延迟可以通过Workflow.SleepAPI实现

工作流延迟可以通过DelayStart选项实现。看见https://github.com/uber-go/cadence-client/blob/e66e2d4da8def80e7a5730b824a2de7a28f5c050/internal/client.go#L415

  • 对于常规工作流,这会延迟执行几秒钟,然后启动。
  • 对于 cron 工作流,这将仅延迟第一次执行。例如,您希望设置每小时 cron 工作流,但希望它从下周的星期一上午 9 点开始运行。您可以通过延迟开始秒选项延迟到星期一上午8点到9点之间,因此它将在上午9点开始,因为它是下一个时间表。
平学
2023-03-14

Cron 用于定期执行某些功能

如果需要延迟任务,可以调用睡眠和工作流的开始,然后调用执行该任务的活动。

 类似资料:
  • 我们正在使用Uber Cadence,我们会定期在正式生产环境中遇到问题。设置如下: 一个带有Cadence客户端2.7.5的Java 14 BE Cadence服务版本0.14.1,带Postgres DB 有多个域,对于所有域,单个BE服务器注册为工作机。 日志中可见的是,有时在查询期间,节奏似乎对BE服务失去了粘性: 同时在后端,没有任何可见。但是,在此期间,如果我检查cadence Web

  • 问题内容: 我需要在循环中对数据库进行SQL查询: 更好的方法是:保持原样或循环后移动: 或者是其他东西 ? 问题答案: 整个要点是直到函数返回才执行,因此将其放置在要关闭的资源打开后的适当位置。但是,由于要在循环内创建资源,因此根本不要使用defer- 否则,在函数退出之前,您不会关闭在循环内创建的任何资源,因此它们会堆积直到然后。相反,您应该在每次循环迭代结束时关闭它们, 而无需 :

  • 在C#中,我有以下两个简单的例子: 第一个示例创建一个打印“开始”的任务,等待5秒钟打印“完成”,然后结束任务。我等待任务完成,然后打印“全部完成”。当我运行测试时,它会按预期运行。 第二个测试应该具有相同的行为,只是由于使用了async和Wait,任务内部的等待应该是非阻塞的。但是这个测试只打印“开始”,然后立即打印“全部完成”和“完成”,永远不会打印。 我不知道我为什么会有这样的行为:S非常感

  • 活动任务很容易理解,因为它正在执行活动...但什么是决策任务?工作人员是否从一开始就运行工作流(使用已完成活动的记录),直到它遇到下一个需要做的“有意义”的事情,同时对下一步需要做什么做出“决定”?

  • 我读过几篇关于Flink的文章,在读Flink的博客时,我遇到了这样一句话:“最多延迟60秒(事件最多延迟1分钟)” 是否在Flink中定义乱序事件持续时间用于技术“水印”,如果不是,那么内部目的是什么?

  • 问题内容: 什么是Java的延迟加载?我不明白这个过程。有人可以帮助我了解延迟加载的过程吗? 问题答案: 假设您有一个父母,而那个父母有很多孩子。Hibernate现在可以“延迟加载”子级,这意味着它在加载父级时实际上并不会加载所有子级。而是在要求时加载它们。您可以显式地请求此请求,或者,更常见的是,当您尝试访问孩子时,hibernate会自动加载它们。 延迟加载可以帮助显着提高性能,因为通常您不