草庐IT

单调双向队列

全部标签

google-app-engine - 从任务队列中解码正文响应

我正在使用go和google任务队列来创建一些同步作业。我成功地将数据传递给工作方法,但我无法解码数据以使用它。我尝试了不同的方法,但我遇到了一个解码错误errum&json.SyntaxError{msg:"invalidcharacter'i'inliteralfalse(expecting'a')",Offset:2}这就是我将数据发送到队列的方式keys:=make(map[string][]string)keys["filenames"]=req.FileNames//[]stringt:=taskqueue.NewPOSTTask("/deletetask",keys)_,

go - tarantool 队列尝试索引全局 'queue'

我的行有错误:que:=queue.New(conn,"foobar"):错误评估:1:尝试索引全局“队列”(零值)(0x20)配置文件:(如果我删除box.once则存在错误管)如何更正配置中的初始用户和管道,而不会出现“用户已存在”错误?`box.cfg{listen=3303}localqueue=require('queue')queue.start()queue.create_tube('foobar','fifottl',{if_not_exists=true})box.once("init",function()box.schema.user.grant('guest',

go - GoLang 中使用 channel 的优先级队列

Question上图中是我需要提供解决方案的问题。这是我想出的解决方案(必须用Go编码)。我收到死锁错误:fatalerror:allgoroutinesareasleep-deadlock!goroutine1[chansend]:main.main()/home/kypriank/Assignment5/priorityqueue.go:42+0x1a3goroutine17[chansend]:main.priorityQueue(0xc420080060,0xc4200800c0)/home/kypriank/Assignment5/priorityqueue.go:22+0x

sql - Go 相当于 GCD 串行调度队列

是否有与Apple的GCD串行调度队列等效的Go?到目前为止,我只找到了一种解决方案,即函数channel。work:=make(chanfunc())我会有一个函数从这个channel接收并调用接收到的函数。这些函数必须按FIFO顺序执行。在Go中是否有更好的方法或结构来执行此操作?这应该不会有什么不同,但我希望将SQL查询排队以为此在FIFO中运行。 最佳答案 @OneOfOne,很接近但不完全是。我最终在Go中实现了串行调度队列可用here.它基本上是一个go例程,阻塞在func()类型的channel上,并运行按顺序传递的函

go - golang 结构的双向绑定(bind)

TLDR:我可以在golang中注册回调函数以在结构成员更改时收到通知吗?我想在Go服务器和Angular客户端之间创建一个简单的双向绑定(bind)。通信是通过websockets完成的。示例:开始:typeSharedTypestruct{AintBstring}sharedType:=&SharedType{}...sharedType.A=52JavaScript:varsharedType={A:0,B:""};...sharedType.A=52;想法:在这两种情况下,修改值后,我想触发自定义回调函数,通过websocket发送消息,并相应地更新客户端/服务器端的值。发送的

google-app-engine - 如何在本地谷歌应用引擎环境中创建拉/推队列

我需要在本地启动我的谷歌应用引擎项目。它在谷歌服务器上正常工作,但调试变得很痛苦,因为在每个修复上部署都需要很多时间。我几乎已经设法在本地启动它,但我不明白如何创建队列,这是必要的。我的步骤:运行dev_appserver.pyapp.yaml,遵循usinglocaldevelopmentserver指导。除队列外一切正常:_,err:=taskqueue.Add(u.Ctx(),task,queueName)exceptions.ThrowIfErr(true,"err_msg",err)throwPanic!UserMessage:,Error:APIerror1(taskque

go - 如何处理可以无阻塞增长的队列

如果队列可以从处理函数本身增长,我正在尝试了解如何在Go中处理队列。请参见下面的代码。在这个伪代码中,我想将我创建的处理程序数量限制为10。因此我创建了10个处理队列的处理程序。然后我用一个url开始排队。我的问题是,根据文档,channel的sender将阻塞,直到接收者接收到数据。在下面的代码中,每个进程都是一个处理新url的接收器。然而,很容易看出,如果一个进程向队列发送11个链接,它将阻塞,直到所有接收者都处理完这些新链接。如果这些接收者每个都有1个链接,那么它们也会在将新的1个链接发送到队列时阻塞。由于每个人都被阻止,所以什么都没有完成。我想知道go的一般解决方案是什么,用于

azure - 从服务总线队列检索消息时出错

我尝试使用Go从Azure服务总线队列中提取消息,但在运行代码时出现错误。这是我的代码。funcExample_queue_receive(){ctx,cancel:=context.WithTimeout(context.Background(),10*time.Second)defercancel()connectionString:="Endpoint=sb://{my_service_name}.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey={my_sh

go - 避免goroutines之间双向通信的死锁

我正在第一次体验Go,到目前为止我真的很喜欢goroutine和channels结构。我想知道是否有一种惯用的方法可以避免多个goroutine之间的双向通信出现死锁。考虑以下示例。共有三个goroutine:producer、worker和controller。生产者生产整数。实际上这可能是数据来了例如来自网络连接。worker从生产者那里接收数据,并对其进行一些操作它。然后,worker将修改后的数据发送给controller。在某些情况下,Controller会向worker发送命令。在里面例如,如果接收到的整数大于180,就会发生这种情况。当Controller试图向工作人员发

google-app-engine - App Engine 任务队列创建一批队列项并在 go lang 中每 10 秒执行一次

由于使用内部代码的第三方API的某些限制(第三方API每分钟有1000个API调用),我想创建一批队列项并每10秒执行一次。但我不知道如何使用任务队列在AppEngine中实现给定的要求。或者可以使用任务队列推送创建批处理吗? 最佳答案 TaskQueueTask有一个Delaytime.Duration以及ETAtime.Time字段,可用于创建和延迟任务.相信你可以重用thetopexample但在调用taskqueue.Add(c,t,"")之前设置其中一个字段 关于google-