Change so that we fire off status update immediately if the number of pending status changes exceeds 100. Issue #658
This commit is contained in:
parent
fcb2fa3ebc
commit
61f9a66d74
|
@ -472,6 +472,10 @@ final class FeedbinAccountDelegate: AccountDelegate {
|
|||
}
|
||||
database.insertStatuses(syncStatuses)
|
||||
|
||||
if database.selectPendingCount() > 100 {
|
||||
sendArticleStatus(for: account) {}
|
||||
}
|
||||
|
||||
return account.update(articles, statusKey: statusKey, flag: flag)
|
||||
|
||||
}
|
||||
|
|
|
@ -31,6 +31,10 @@ public final class SyncDatabase {
|
|||
return syncStatusTable.selectForProcessing()
|
||||
}
|
||||
|
||||
public func selectPendingCount() -> Int {
|
||||
return syncStatusTable.selectPendingCount()
|
||||
}
|
||||
|
||||
public func resetSelectedForProcessing(_ articleIDs: [String]) {
|
||||
syncStatusTable.resetSelectedForProcessing(articleIDs)
|
||||
}
|
||||
|
|
|
@ -39,6 +39,23 @@ final class SyncStatusTable: DatabaseTable {
|
|||
|
||||
}
|
||||
|
||||
func selectPendingCount() -> Int {
|
||||
|
||||
var count: Int = 0
|
||||
|
||||
self.queue.fetchSync { (database) in
|
||||
let sql = "select count(*) from syncStatus"
|
||||
if let resultSet = database.executeQuery(sql, withArgumentsIn: nil) {
|
||||
resultSet.next()
|
||||
count = Int(resultSet.int(forColumnIndex: 0))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return count
|
||||
|
||||
}
|
||||
|
||||
func resetSelectedForProcessing(_ articleIDs: [String]) {
|
||||
self.queue.update { database in
|
||||
let parameters = articleIDs.map { $0 as AnyObject }
|
||||
|
|
Loading…
Reference in New Issue