猿问

如何为同步网关创建多个复制器?

我已经创建了一个带有拉取和推送选项的复制器,但问题是我需要从 Couchbase 服务器获取一些文档而无法推送。谁能帮我解决这个问题?注意:我使用的是 couchbase lite 2.5、couchbase server 6.0 和 sync gateway 2.5


我当前的推拉复制器


public static void startPushAndPullReplicationForCurrentUser(String username, String password) {

    Log.e("Replication", "startPushAndPullReplicationForCurrentUser");

    URI url = null;

    try {

        url = new URI(mSyncGatewayEndpoint);

    } catch (URISyntaxException e) {

        e.printStackTrace();

    }


    ReplicatorConfiguration config = new ReplicatorConfiguration(database, new URLEndpoint(url));

    config.setReplicatorType(ReplicatorConfiguration.ReplicatorType.PUSH_AND_PULL);

    config.setContinuous(true);

    config.setAuthenticator(new BasicAuthenticator(username, password));


    Replicator replicator = new Replicator(config);

    replicator.addChangeListener(new ReplicatorChangeListener() {

        @Override

        public void changed(ReplicatorChange change) {


            if (change.getReplicator().getStatus().getActivityLevel().equals(Replicator.ActivityLevel.IDLE)) {


                Log.e("Replication Comp Log", "Schedular Completed");


            }

            if (change.getReplicator().getStatus().getActivityLevel().equals(Replicator.ActivityLevel.STOPPED)

                    || change.getReplicator().getStatus().getActivityLevel().equals(Replicator.ActivityLevel.OFFLINE)) {

                // stopReplication();

                Log.e("Rep schedular  Log", "ReplicationTag Stopped");

            }

        }

    });

    replicator.start();

}

所有数据库都附加到推拉复制器,但这是错误的。


慕后森
浏览 150回答 2
2回答

慕神8447489

如果您希望复制器不推送,请使用 config.setReplicatorType(ReplicatorConfiguration.ReplicatorType.PULL);PUSH_AND_PULL 代替。我们在我的项目中使用它,我们希望服务器在推送到数据库之前验证记录(验证对于他们简单的验证机制来说太复杂了——它需要我们获取其他记录,而该机制不允许)。无法对某些文档进行双向同步,但对其他文档进行单向同步。这是一个全有或全无的设置。如果您需要,您可以做的是将所有内容都放在 PULL 中,并且当您更改要推送的文档时,通过您自己的端点或直接同步网关 API 调用手动将其推送到服务器。但是,这确实存在使数据库不同步的风险,尤其是在离线文档经常更改的情况下。

阿波罗的战车

在 2.5 中,您可以使用复制过滤器来做到这一点。在您的情况下,设置一个推拉复制器并定义一个推送复制过滤器以过滤掉您不想推送的文档(仅限本地)。
随时随地看视频慕课网APP

相关分类

Java
我要回答