首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在AWS中使用Thread.sleep好吗?

在AWS中使用Thread.sleep好吗?
EN

Stack Overflow用户
提问于 2019-12-03 15:57:05
回答 3查看 3.6K关注 0票数 3

我使用的是使用Java编程语言的AWS,由于某些要求,我必须在Lambda函数中睡眠2-3,或者在某些情况下长达12秒钟,是将Thread.sleep()放入lambda函数还是有任何技术后果。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-03 18:04:05

很少有案例证明做Thread.sleep是合理的。

  • 每隔几秒钟轮询一次,并检查某些状态是否已更改,而这种状态无法控制您的代码。例如,考虑检查某个远程进程是否已经完成。
  • 您希望模拟某些代码,以便“花费”比实际更多的时间。
  • 将每秒执行多个操作的代码节流。例如,从远程服务器请求多个资源,但是减少请求,这样就不会使其过载。

我相信还有很多更合理的理由。不要害怕睡觉你的代码。确保你睡觉是有正当理由的。还请确保线程模型(其中确实需要在代码中休眠)不会导致死锁

请注意,在AWS Lambda中运行时,您应该尽可能地优化您的睡眠量,因为您为这一甜蜜的CPU时间付出了代价。

票数 4
EN

Stack Overflow用户

发布于 2019-12-06 09:52:30

如果您的Lambda使用较高的内存将更好(更便宜)启动两种不同的Lambda比等待12秒。

如果您有某种工作流,或者需要等待特定的条件,您可以评估AWS阶跃函数的引入,或者(也许更好)将上下文发送到能见度超时设置为12秒的SQS队列。通过这种方式,第二个lambda将等待,至少在12秒前开始。

票数 4
EN

Stack Overflow用户

发布于 2019-12-03 17:29:18

基本上,你可以做任何你想做的事,在这种情况下,你只需付出更多:-)

Lambda函数的整个思想是有一个接收输入并产生输出的函数,并且有一个单一的责任,类似于普通的旧函数。

让我们考虑一下为什么需要使用Thread#sleep

  1. 你执行第一动作。
  2. 等待此操作完成。
  3. 执行行动2。

这是三种不同的责任。这对任何函数来说都是太多的,包括Lambda :-)

这两个操作都可以是单独的Lambda函数。最近添加了目的地,您的Lambda #1可以触发Lambda #2。

在这种情况下,根本没有必要进行投票。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59160887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档