为什么在Jsr 352 ItemWriter接口中有checkpointInfo方法。读者和作者如何就提交的内容进行沟通
答案 0 :(得分:0)
编写器无需使用 checkpointInfo()方法。您只需选择忽略 open()中的检查点值,然后返回import UIKit
class FluidIntakeMainMenuViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
//MARK: - Collection View Properties
@IBOutlet weak var ibCollectionView: UICollectionView!
@IBOutlet weak var ibCollectionViewLayout: UICollectionViewLayout!
var cellArray:[customCollectionViewCell] = Array(repeatElement(customCollectionViewCell(), count: 6))
let displayedCellDimensions = CGSize(width: 343, height: 248)
//MARK: - Xcode-generated Methods
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
ibCollectionView.dataSource = self
ibCollectionView.delegate = self
}
//My code for this class continues down here...
(如 AbstractItemWriter 那样)。这很常见。通常,您不需要任何类型的“游标”或索引来写入数据库,因为您只需插入/更新读取器/处理器提供给您的任何内容(基于读取器检查点等)。
写入平面文件时可能会使用检查点。由于文件写入通常不是事务性的,因此您需要以某种方式解释此问题。
一种简单的方法是在最近一个块的末尾检查文件中的字节#/偏移量。因此,如果在将记录501-600写入文件之后块事务回滚,那么在重新启动时,您将重新读取并重新处理记录501-600。即使文件中已存在记录501-600,您现在也会覆盖它们,因为您在记录500之后(重新)从字节位置开始。
由于不应经常重启,并且您只需要重新处理一个块,这可以提供一种简单,可接受的方式来解决缺少事务资源的问题。