提问人:Chirag Arora 提问时间:1/28/2023 更新时间:1/28/2023 访问量:20
将对观察者的多个调用合并为一个指标
Consolidate multiple calls to observer into one single metric
问:
我在我的类中设置了一个 WKHTTPCookieStoreObserver
。我想检查我的 cookie 是否丢失,如果是,我想发出单个指标并再次设置 cookie。问题在于观察者是异步的,并且为单个事件创建多个指标。如何将对观察者的所有调用合并到一个指标中?
- (void)cookiesDidChangeInCookieStore:(WKHTTPCookieStore *)cookieStore {
dispatch_async(dispatch_get_main_queue(), ^{
[cookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {
NSString *cookieValue = nil;
for (NSHTTPCookie *cookie in cookies) {
if ([cookie.name isEqualToString:cookieName]) {
cookieValue = cookie.value;
}
}
if (![cookieValue isEqualToString:expectedCookieValue]) {
[self createAndPublishCookieMismatchMetric]; // this line gets called ~300 times
[self writeCookieToWKWebsiteDataStore]; // write the missing cookie to the cookie store
}
}];
});
}
我想合并所有 ~300 次对函数的调用,并只为此事件发出一个指标。即使我从下一行将 cookie 写回存储,看起来队列中已经有多个调用等待处理。正确的解决方案是什么?
答: 暂无答案
评论