草庐IT

sleep-mode

全部标签

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

go - time.Sleep 在 VM 上睡了不正确的时间

我正在运行以下代码:https://play.golang.org/p/5bhXs_QulHpackagemainimport("fmt""time")funcmain(){startTime:=time.Now()foo:=0.200fmt.Println(int((time.Now().UnixNano()-startTime.UnixNano())/int64(time.Millisecond)))time.Sleep(time.Duration(foo*1000)*time.Millisecond)fmt.Println(int((time.Now().UnixNano()-s

go - 使用 Flyspell-prog-mode 和 go-autocomplete

在emacs中使用flyspell-prog-mode会导致go-automplete阻塞。无论如何我可以让这两种模式很好地一起玩吗?我研究过使用另一种拼写检查器,但没有找到与flyspell具有相同功能的拼写检查器(即只检查注释和字符串,并即时执行)。非常感谢任何提示,谢谢 最佳答案 这是自动完成的一个普遍问题。就这样(ac-flyspell-workaround)在设置自动完成之后。 关于go-使用Flyspell-prog-mode和go-autocomplete,我们在Stack

design-patterns - 断路器设计模式 sleep vs time.AfterFunc

我正在尝试创建一个Circuitbreakerpattern,我想执行命令exec.Command如果失败,在X定义的时间内重试,出于测试目的,我正在做这样的事情来测试time.AfterFunc:packagemainimport("fmt""time")funcmyFunc()error{fori:=1;itime.AfterFunc适用于上面的代码,但不适用于下面的示例,我不得不将其替换为sleep以实现预期的结果:packagemainimport("fmt""os/exec""time")funcExec(donechan./sleep的内容:#!/bin/shsleep3为

linux - sleep 过程直到在 Go 中完成

我正在尝试在Go中自动化一个流程。我已经能够实现线程并相应地执行该过程,但是输出是混合和匹配的。我想知道是否有一种方法可以根据程序的进程显示程序生成的输出。因此,如果任务A在任务B之前完成,我们会在B之前显示A的输出,反之亦然。packagemainimport("fmt""log""os""os/exec""sync")varurlstringvarwgsync.WaitGroupfuncnikto(){cmd:=exec.Command("nikto","-h",url)cmd.Stdout=os.Stdouterr:=cmd.Run()iferr!=nil{log.Fatal(e

go - 如何确保所有 goroutines 在没有 time.Sleep 的情况下终止?

这个问题在这里已经有了答案:Preventthemain()functionfromterminatingbeforegoroutinesfinishinGolang(4个答案)Nooutputfromgoroutine(3个答案)Goroutinedoesnotexecuteiftime.Sleepincluded(1个回答)关闭3年前。我正在尝试使用关于谁先收到消息的go例程。然而,当主goroutine终止时,一些goroutines仍然存在。我通过panic的堆栈跟踪看到了这一点。但是,如果我添加time.Sleep它们都会终止。我猜这是因为,当主要的go例程结束时,Go运行时

带有 journal_mode=WAL 的 go-sqlite3 给出 'database is locked' 错误

在go中,我使用mattn/go-sqlite3模块打开了一个sqlite3数据库。我在使用PRAGMAjournal_mode=WAL打开后立即将数据库日志记录模式设置为WAL。但是,如果我在第一个进程运行时尝试从第二个进程打开数据库,则第二个进程无法打开它,而是收到“数据库已锁定”错误。即使我没有执行任何交易,也会发生这种情况。我使用的连接字符串是:"file:mydbfile.db?cache=shared&mode=rwc"(我打算回答我自己的问题,因为调试了很长时间) 最佳答案 如果你想启用journal_mode=WAL

Go:所有 goroutines 都在 sleep - 死锁

我有一段代码来调整图像大小。我正在使用resize库。这是片段:packagemainimport("fmt""github.com/nfnt/resize""image""image/jpeg""os""runtime")funcmain(){runtime.GOMAXPROCS(4)file_names:=make([]string,5)fori:=1;i这是我的proccesFileName函数:funcproccesFileName(filenamestring,cchanstring,cechanerror){file,err:=os.Open(fmt.Sprintf("in