2017-04-17 9 views
1

Realmデータがいくつかの非同期ネットワークコールバックから更新されているため、すでにトランザクション中にレルム書き込みがクラッシュしています。私は理解しているなぜレルムはクラッシュしていますが、私は正しいアーキテクチャがここにあるのだろうかと思っています。多くの非同期レルムの書き込みに最適なアーキテクチャ

これまでは、個々の書き込みトランザクションをバックグラウンドスレッドに移動することでクラッシュを最小限に抑えることができましたが、これが推奨されるベストプラクティスですか?毎回これをすることを覚えています。ネットワーク要求がすべて中央のクリアリングハウスを経由して実行されると、バックグラウンドスレッドにコールバック(したがって書き込み)が行われますか?あるいは、バックグラウンドスレッドはこれを行う正しい方法でもありませんか?

答えて

0

バックグラウンド書き込みはRealm(奨励されます!)でもうまくいきますが、注意すべき点は、バックグラウンドキューがconcurrentとマークされている場合、同じスレッドに対して同じスレッドが再利用される可能性があります。書き込みトランザクションの途中で別のブロックが実行されている間に、ブロックの1つを実行するようにスケジュールします。

これを解決する最善の方法は、書き込みを行っているGCDキューが並行ではなくシリアルとしてマークされていることを確認することです。