为了账号安全,请及时绑定邮箱和手机立即绑定

在 golang、timer 或 goroutine 循环中等待事件到期的最佳方法是什么?

在 golang、timer 或 goroutine 循环中等待事件到期的最佳方法是什么?

Go
三国纷争 2022-01-04 10:58:35
状态机的第一个状态正在等待一个事件,如果事件在某些天没有发生,状态机将切换到第二个状态。如果事件发生在该时间段内,状态机将切换到第三个状态。我有两个选择:1,使用计时器。将计时器设置为特定日期。当时间到时,检查事件是否发生。如果发生,切换到第三种状态。如果没有,请切换到第二个状态。在此期间可能会创建数千个计时器。2,使用循环与例程。启动一个例程来运行一个循环。每半小时,goroutine 会检查事件是否发生。如果事件发生,切换到第三种状态。否则,继续循环直到特定天数到期,然后切换到第二个状态。我的问题是time.Timer vs goroutine,哪个更适合这种情况?
查看完整描述

1 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

由于您提到了几天的时间段,在给定的两个时间段中,您可能应该选择第二个选项。通过这种方式,您可以将状态存储到文件(或数据库)并在必要时重新启动该过程。第一个选项使存储状态更加困难,但仍然可能。


查看完整回答
反对 回复 2022-01-04
  • 1 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号