- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在寻找替换以下视频中描述的有缺陷的 fork-join-queue 实现:
https://youtu.be/zSDC_TU7rtc?t=33m37s
我意识到这个视频已经有将近八年的历史了,我很乐意学习任何潜在的新的和更好的方法来做这些事情,但现在我正专注于尝试按照描述的方式完成这项工作布雷特。目前,摆在我面前的有点乱。
原始开发人员与 Brett 不同的地方之一是,他将特定 sum_name
的所有工作项放入单个实体组中。
我对数据存储还比较陌生,但对我来说这似乎违背了整个目的,因为每秒多次向实体组添加新实体会引起争用,而这正是我们正在尝试的事情通过批处理更改来避免。
至于为什么有人会尝试将所有工作放在一个实体组中,原始开发人员的评论很明确——他试图防止工作项因最终一致性而被跳过。这让我真正深入研究了 Brett 的实现,我感到非常困惑,因为这似乎是 Brett 没有考虑的问题。
简单地说,当 Brett 的任务查询工作项时,它使用的索引可能不是最新的。当然,他对 memcache 所做的锁定应该使这不太可能,因为任务的开始将阻止更多的工作项被添加到该索引。但是,如果索引更新时间足够长以至于在锁递减之前写入了一些内容,但查询结果中仍然没有返回怎么办?这样的工作项不会最终只是卡在数据存储区中,永远不会被使用吗?
Brett 的实现中是否有我没有看到的处理此问题的某些方面?显然布雷特知道他在做什么并且对此非常有信心,所以我觉得我一定错过了什么。
但是,如果不是,应该如何处理呢?
最佳答案
根据演讲日期,演讲采用了主/从数据存储。谈话是从 2010 年开始的,但是高复制 Datastore ( https://googleappengine.blogspot.com/2011/01/announcing-high-replication-datastore.html ) 直到 6 个月后才发布。
解决实体组争用的一种方法是使用类似 task-name-INDEX 的内容手动创建工作项键,并在任务中获取从 task-name-0 到 task-name-TOP_INDEX 的所有键top 索引可能会存储在 memcache 中。
关于google-app-engine - 如何处理 fork-join-queue 中的最终一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48914036/
GhostScript PDF/A 生成好像有错误 当您通过 GhostScript 生成 PDF/A 文档时,当您单击 Adobe Reader 时,会出现一个一致性选项卡,其中显示: “一致性
我有一个需要测试的 XPath 引擎实现。 是否有一组标准的一致性测试可以用来验证是否符合 XPath 规范(与 XSLT 相关)。 什么将是完美的 XML 文档 XPath 表达式和预期的结果。 最
帮助我了解在这种情况下我可以期望与 MongoDB 的一致性级别。 我们正在运行一个副本集,其中 Mongoid 中的 consistency 标志设置为 strong,这意味着只读到 master。
假设我有一个采用一个参数的方法。 此参数应满足以下要求: 'of type':方法需要知道参数属于特定类(或子类)。 'implements interface':方法需要知道参数实现了特定的接口(i
当协议(protocol)将属性声明为可选而具体类型将其声明为非可选时,如何使具体类型符合协议(protocol)? 这是问题所在: protocol Track { var trackNum
我正在考虑使用浏览器的 navigator.mimeTypes 数组作为第三级用户/浏览器标识符。例如,当我在 Chrome 上运行时... console.log(navigator.mimeTyp
我有以下协议(protocol): protocol ProtoAInput { func funcA() } protocol ProtoA { var input: ProtoAI
如果选择“最终”一致性,则发生写入的区域内的一致性是什么? 如果我只需要区域强一致性,应该选择哪个选项? 最佳答案 如果您需要在主要区域内进行强读取,则应该选择强一致性或有界过时一致性。 关于azur
您好,我是一名初学者,目前正在尝试学习 java 编程。课本上的问题: 编写一个程序来帮助人们决定是否购买混合动力汽车。你的程序的输入应该是:•新车的成本•预计每年行驶里程•预计汽油价格 •每加仑英里
我正在尝试制作一个可以在 UILabel 上使用的 Swift 协议(protocol), UITextField , 和 UITextView包含他们的text , attributedText ,
我有一个类扩展: extension UICollectionViewCell { class func registerFromNibInCollectionView(collectionV
为了在 Swift 中模拟对象进行测试,我通常遵循这样的模式:编写一个协议(protocol)来描述我想要的对象的行为,然后使用 Cuckoo 为其生成模拟以进行测试。 通常,这些协议(protoco
假设我有两个非通用协议(protocol)(1) protocol StringValue { var asString: String {get} } protocol StringProv
我有一组协议(protocol)可以在 UITableView 中显示一个元素: protocol TableRepresentableRow { var title: String { get
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
用“class”标记 CacheManager 解决了我的问题。 案例:一个简单的缓存器,mutating get 不是我想要的,那么对于引用类型或类类型应该怎么做? protocol Cacher
我想要一个符合协议(protocol)的变量,但是 swift 编译器告诉我协议(protocol)没有确认。 protocol A {} protocol B { var a : A { g
如果我有一个类 Christmas 和一个协议(protocol) Merry,要使 Christmas 符合 Merry,很多人会这样做: class Christmas { ... } e
@objc public protocol P1 { func p1foo() } @objc public protocol P2 { func p2foo() } class A: NSO
我有一些结构符合的基本协议(protocol)(模型)。它们也符合 Hashable protocol Model {} struct Contact: Model, Hashable { v
我是一名优秀的程序员,十分优秀!