草庐IT

event-dispatching

全部标签

events - 用于事件调度的队列/数据库?

我可能会在某个时候建立自己的,但与此同时;是否有通用语言的事件调度程序——以例如:{time,priority,action}作为输入——可跨分片分布,并支持:在O(1)中排队(推送)在O(logn)中出列(弹出)O(1)中的下一个预定(查找分钟)在O(logn)中任意删除,例如:通过使用指定为delete_queue的第二优先级队列正在研究Redis,但找不到合适的优先级队列接口(interface)。 最佳答案 我不认为您可以使用您为每个操作描述的确切复杂性假设使用Redis实现这样的队列。你可以用Redis做的是使用zset。

events - 如何确保我的事件仅由我的应用程序的一个实例处理?

在我们的架构中,我们有一个用于缓存和发布事件的Redis服务器。我的问题如下我有一条名为“CustomerUpdate”的消息我有1个应用程序正在收听此消息正在执行此应用程序的3个实例(服务器)以实现可伸缩性1个数据库实例正在运行此消息的处理程序之一将更新数据库一些其他处理程序将删除内存缓存或在实例本地执行某些操作是否有任何模式可以确保数据库不会被应用程序的每个实例更新? 最佳答案 您可以使用redis键/值作为拦截器。当实例收到来自订阅的消息时,在Redis中执行LUA脚本以检查它的进程是否已经存在。服务器接收来自订阅的消息使用r

events - 使用Node.js监听Redis上的按键事件

我需要知道何时将数据写入Redis存储的特定键上。有什么方法可以使用Node.js监听Redis关键事件,还是我必须使用pub/sub实用程序?在第二种情况下,最好的方法是什么? 最佳答案 IsthereanywaytolistentoRediskeyeventsusingNode.jsordoIhavetousethepub/subutilities?据我所知,redis本身并不支持keychangenotificationsyet虽然还有其他alternatives包括基于发布/订阅的解决方案。

ios - 在 Swift 中找出 Grand Central Dispatch 的语法

我有以下代码:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)){//Dostuffinthebackgrouddispatch_async(dispatch_get_main_queue()){//DostuffontheUIthread}}但是它不会编译。对dispatch_async的内部调用返回以下编译错误:Cannotinvoke'init'withanargumentlistoftype'(dispatch_queue_t!,()->()->$T3)'我似乎无法弄清楚如何编

ios - 在 dispatch_async 中正确引用 self

如何在swift闭包中正确引用self?dispatch_async(dispatch_get_main_queue()){self.popViewControllerAnimated(true)}我得到错误:无法将表达式的类型“Void”转换为类型“UIViewController!”我随机尝试过:dispatch_async(dispatch_get_main_queue()){()self.popViewControllerAnimated(true)}它奏效了。不确定extra()的作用!有人愿意解释吗?谢谢! 最佳答案 这

ios - 我需要将我的 Alamofire 调用包装在 dispatch_async 中吗?

funcauthenticate(completion:(success:Bool)->Void){letqos=Int(QOS_CLASS_USER_INITIATED.value)dispatch_async(dispatch_get_global_queue(qos,0)){()->VoidinAlamofire.request(.POST,CONSTANTS.Domain+"/accounts",parameters:["":""]).responseJSON{(req,res,json,error)indispatch_async(dispatch_get_main_queu

ios - Swift 2 - iOS - 分派(dispatch)回原始线程

所以我有一个应用程序可以触发一系列异步事件,然后将结果写入缓冲区。问题是我希望同步写入缓冲区(在生成异步进程的线程中)骨架代码是这样的letSession=NSURLSession.sharedSession()letTheStack=[Structure]()//Thisgetscalledasynchronously,e.g.inthreads3,4,5,6,7funcAddToStack(TheResponse)->Void{TheStack.insertAt(Structure(TheResponse),atIndex:0))ifoutput.hasSpaceAvailable

ios - DISPATCH_QUEUE_CONCURRENT 和 DISPATCH_QUEUE_SERIAL 有什么区别

我实现了以下类:classGCDStudy{funcasyncSerial(time:Double){letqueue=dispatch_queue_create("DISPATCH_QUEUE_SERIAL",DISPATCH_QUEUE_SERIAL)dispatch_async(queue){vari:Double=0while(i然后运行如下:运行A:gCDStudy=GCDStudy()gCDStudy.asyncSerial(1)gCDStudy.asyncSerial(2)运行BvgCDStudy2=GCDStudy()gCDStudy2.asyncConcurrent(

swift - 在 Swift 中使用 Dispatch_Async 更新 UI

在我的代码中,我有一个简单的for循环,它循环100次并嵌套for循环以产生延迟。延迟之后,我正在通过dispatch_async更新UI中的进度View元素。但是,我无法更新UI。有谁知道为什么UI不更新?注意:下面的打印语句用于验证for循环是否正确循环。foriin0.. 最佳答案 三个观察,两个基本的,一个更高级一点:除非循环本身在另一个线程上运行,否则您的循环将无法更新该主线程中的UI。因此,您可以将其分派(dispatch)到某个后台队列。在Swift3中:DispatchQueue.global(qos:.utilit

ios - dispatch_group_leave swift 崩溃

这种情况很少发生。这是堆栈跟踪的最后一行:0libdispatch.dylib0x0000000197a85a9cdispatch_group_leave+48dispatch_group_leave在一个完整的闭包中调用,调用方式如下:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),{()->Voidinletquery=HKStatisticsCollectionQuery(quantityType:quantityType,quantitySamplePredicate:nil