【发布时间】:2018-05-03 17:58:13
【问题描述】:
我有一个方法可以处理我从服务器接收到的事件。可以从不同类的多个位置调用该方法。我想使用 DispatchQueue/Serial Queue 同步事件的处理以丢弃多个调用中的重复事件。我知道调度队列以及它是如何工作的,但我无法为我的问题找到最佳解决方案。
要实现:通过同步我想保证顺序处理,丢弃重复的事件。
func process(events:[Events]) {
// by synchronizing I want to ensure sequential processing, to discard duplicate events
for event in events {
// process, save to db,
}
// issue notifications, etc
}
class A {
process(events)
}
class B {
process(events)
}
感谢任何帮助。谢谢!
【问题讨论】:
-
我认为调度组与解决方案没有任何关系。如果你想序列化执行的工作,让每个调用有机会查询哪些事件已经被处理,那么使用串行队列。
-
是的。我想我想提一下调度队列,但我很困惑,你能提供这个@Avi 的解决方案吗?我已经编辑了我的问题。
标签: ios swift grand-central-dispatch dispatch-queue