我正在使用Sqlite.Swift,我想执行三项不同的任务来将数据添加到我的数据库中。每项任务都将从外部来源获取数据。
所以我想做的是:
现在我只有这样:
dataService.getPlaces()
dataService.getTaxes()
dataService.getPersons()
但问题是有超过2000个地方,100个税和2000个人,所以每个任务都需要一些时间才能完成,当数据库试图同时运行时数据库会被锁定。
任何人都知道如何一次完成这项任务?
答案 0 :(得分:0)
使用NSOperationQueue,去年的WWDC有一个很好的video online。
答案 1 :(得分:0)
SQLite,无论您使用什么样的Swift库,都不支持并发写入:您无法并行编写场所,税收,人员。
即使你打开多个连接也是如此,因为我猜你做错了。
您可以做的是:首先从内存中的外部源加载数据。这可以并行完成。加载完所有数据后,您可以在单个事务中将它们写入数据库(当您在事务中对写入进行分组时,SQLite的执行效果会更好。)