草庐IT

sleep_durations

全部标签

go - 在 Golang 中划分时间.Duration

目前,Go中的time包没有'divide'函数或类似的东西。您可以将time.Duration除以其他值,但这需要相当多的转换。是否有任何简单/明显的方法来划分time.Duration通过Go中我没有看到的东西?(我知道你可以除以一个数字常量,但我需要在动态的基础上进行。)我计划提交一个问题/功能请求以将基本的“除”功能添加到time包,但我想先在这里问一下,以防我错过了一些简单的方法来进行这种除法。 最佳答案 Packagetimeimport"time"ThereisnodefinitionforunitsofDayorla

select - 从非 chan 类型 time.Duration 接收

在thistutorial提供以下示例:funcLongRunningHandler(ctxcontext.Context)string{deadline,_:=ctx.Deadline()for{select{case当我编译此代码时出现以下错误:invalidoperation:示例中的代码有什么问题? 最佳答案 用于从channel接收,为此既不time.Until或Truncate返回一个channel。在这种情况下,错误消息是在识别问题,但并没有真正说明实际需要采取哪些不同的措施。go确实提供了一些返回channel的时间

go - 自定义节拍运行错误: invalid duration "ns"

我正在研究一个自定义节拍,它解码一个二进制文件以提取数据并将其发送到elasticsearch,复杂化正常但是当我运行它时,它给我一个无效持续时间“ns”的运行时间错误这是我的代码:packagebeaterimport("fmt""io/ioutil""math""time"//"log""strconv""strings""github.com/elastic/beats/libbeat/beat""github.com/elastic/beats/libbeat/common""github.com/elastic/beats/libbeat/logp""github.com/e

function - 如何将 time.Duration 类型传递给 go 函数?

我正在学习GOLANG,尤其是它的并发能力。已尝试进一步开发worker_pool示例之一,以便每个工作人员都收到一个作业ID和一个作业负载,以作业的随机持续时间表示。time.sleep命令使用持续时间来等待分配的纳秒数,这是随机计算的。代码看起来像这样......//worker_poolimprovedexamplepackagemainimport"fmt"import"time"import"math/rand"//Here'stheworker,ofwhichwe'llrunseveral//concurrentinstances.Theseworkerswillrecei

go - 如果没有进一步的语句要执行,为什么 time.Sleep 不起作用?

我正在尝试运行下面这段代码packagemainimport("fmt""time")funcmain(){time.Sleep(time.Millisecond*6000)fmt.Println("Done")}正如预期的那样,它等待6秒,打印“完成”然后退出但是如果我删除打印语句,packagemainimport("time")funcmain(){time.Sleep(time.Millisecond*6000)}它不会等待并立即退出。为什么?因此,请看下面的代码packagemainimport("fmt""time")funcmain(){c:=make(chanint)g

time - 如何仅使用 time.After 编写我自己的 Sleep 函数?

我正在尝试使用Go中的time.After编写自己的sleep函数,等同于time.Sleep。这是代码。第一次尝试:funcSleep(xint){msg:=make(chanint)msg:=第二次尝试:funcSleep(xint){time.After(time.Second*x)}两者都返回错误,有人可以向我解释如何使用time.After编写等同于time.Sleep的sleep函数吗?如果可能的话,我什么时候使用channel? 最佳答案 time.After()返回给你一个channel。在指定的持续时间后,将在ch

go - 将整个函数放在一个带有 time.Sleep 的无限循环中还是循环一个 go routine 效率更高?

我有一个函数,我想每20秒左右轮询一次,现在它在go例程中被调用,如下所示:转到StartTradeBot()然后在函数体中:funcStartTradeBot(){for{//Allthestufftodotime.Sleep(20*time.Second)}}这样效率更高吗?或者我应该像这样包装我的goroutinefor{goStartTradeBot()time.Sleep(20*time.Second)} 最佳答案 关于如何做到这一点,至少有三种变体,每种都有不同的功能。因为间隔是20秒,所以性能上的差异可以忽略不计。选择

go - 根据外部(例如用户)输入更改 Uber Cadence sleep 时间

是否有Cadence工作流根据外部输入更改sleep持续时间的示例?我正在寻找的场景是这样的:工作流进入休眠状态直到时间X,但在sleep开始之后但在它完成之前,有一个外部触发器导致时间X更改为时间Y。Y可以是晚于或早于X。它甚至可以早于“现在”,这应该立即释放sleep。 最佳答案 这是您正在寻找的代码片段funcSampleTimerWorkflow(ctxworkflow.Context,timerDelaytime.Duration)error{logger:=workflow.GetLogger(ctx)resetCh:=

unit-testing - 优步 Cadence : How do I assert the call to workflow. sleep ()?

在我的单元测试中,我想断言调用了workflow.Sleep()。我该怎么做? 最佳答案 可以使用TestWorkflowEnvironment.Now()函数访问模拟时间。例如:before:=testenv.Now()testenv.ExecuteWorkflow(...)after:=testenv.Now()然后断言before和after之间的变化。 关于unit-testing-优步Cadence:HowdoIassertthecalltoworkflow.sleep()?,

go - 在 goroutine 中等待主线程 sleep

编写这段非常基本的代码来理解channel。如果协程中有等待,为什么主协程在等待它?我读到主goroutine需要等待时间,因为在调用goroutine后控制权会立即传回给它。为什么goroutine不像java中的主线程和子线程那样可以并行运行?funcmain(){channel:=make(chanint)gofunc(){time.Sleep(3*time.Second)}()for{fmt.Println("../"); 最佳答案 我认为你的主线程正在等待来自channel的东西funcmain(){channel:=ma