我在Google App Engine的实时数据存储中获得了一些数据,但是想要本地开发本地副本.什么是偶尔同步的最佳方式?
我正在开发一个Django应用程序,它将使用多个数据库后端.我想在运行django应用程序的机器上放一个sqlite数据库,并同步到远程mysql数据库.棘手的部分是运行应用程序的这台机器并不总是有互联网连接,所以mysql数据库并不总是可用的.将有多台机器运行该应用程序,每台机器都有自己的本地sqlite DB,但都使用相同的远程mysql DB.
我还没有编写代码,但这是我的想法.我每次运行插入或更新,我想将其写入到两个数据库,除非远程数据库不可用,在这种情况下,我会保存在SQL语句中的表在本地数据库上运行时,远程数据库是可用的.
这可以用数据库路由器完成,还是我需要用每个db语句手动实现它?
关于PK的注意事项:没有直接关系,但肯定会被问到.主键将在每台机器上本地生成.在mysql DB中,将有一个该键的字段,以及一个具有应用程序每个实例的唯一标识符的字段,它们将共同提供唯一键.
我正处于设计RSS应用程序的早期阶段,我想将同步到在线RSS提要服务中作为一项功能.大多数此类应用程序都使用了谷歌阅读器的提要/同步功能,但谷歌现在正在将其同步移出其阅读器服务,而且其API仍然没有记录.谷歌阅读器是否有其他替代方案可以提供与桌面客户端在线同步,并且有文档化的API?
运行10.7.4,我运行了以下内容:
mkdir -p /opt/mports
cd /opt/mports
svn checkout https://svn.macports.org/repository/macports/trunk
cd trunk/base
./configure --enable-readline
make
sudo make install
make distclean
Run Code Online (Sandbox Code Playgroud)
然后我跑了nano /opt/local/etc/macports/sources.conf,注释掉rsync://rsync.macports.org/release/tarballs/ports.tar并加入file://opt/mports/trunk/dports [default]
跑完后sudo port -d sync我收到了
DEBUG: Copying /Volumes/Storagestar/Users/themikemasterson/Library/Preferences/com.apple.dt.Xcode.plist to /opt/local/var/macports/home/Library/Preferences
---> Updating the ports tree
Synchronizing local ports tree from file:///opt/mports/trunk/dports
DEBUG: /usr/bin/svn update --non-interactive /opt/mports/trunk/dports
DEBUG: changing euid/egid - current euid: 0 - current egid: 0
svn: OPTIONS of 'https://svn.macports.org/repository/macports/trunk': Server certificate verification failed: issuer is not trusted (https://svn.macports.org)
Command failed: …Run Code Online (Sandbox Code Playgroud) 我有两个数组,旧的和新的,在每个位置保存对象.我将如何同步或找到增量(即新数组与旧数组相比新增,更新和删除的内容)
var o = [
{id:1, title:"title 1", type:"foo"},
{id:2, title:"title 2", type:"foo"},
{id:3, title:"title 3", type:"foo"}
];
var n = [
{id:1, title:"title 1", type:"foo"},
{id:2, title:"title updated", type:"foo"},
{id:4, title:"title 4", type:"foo"}
];
Run Code Online (Sandbox Code Playgroud)
使用上述数据,使用id作为键,我们发现id = 2的项目具有更新的标题,id = 3的项目被删除,id = 4的项目是新的.
是否存在具有有用功能的现有库,或者是循环和内循环的情况,比较每一行......例如
for(var i=0, l=o.length; i<l; i++)
{
for(var x=0, ln=n.length; x<ln; x++)
{
//compare when o[i].id == n[x].id
}
}
Run Code Online (Sandbox Code Playgroud)
做三次这样的比较,找到新的,更新的和删除的?
我想SyncAdapter在Wifi上运行我的唯一功能.在开始时onPerformSync,我可以检查是否存在wifi.如果不是,我想推迟它,直到有WIFI可用.
我知道,syncresult.delayUntil但这意味着同步适配器每隔x分钟无用地调用,尽管可以禁用wifi,例如整天.此外,delayUntil如果您triggerSync直接使用,我所阅读的内容并不适用.
这里最好的方法是什么?像Evernote这样的应用似乎只能在WIFI上同步这个选项.
我有一个NoSQL数据库,我们用它来进行数据处理,因为它可以比SQL更快地用于我的应用程序.我将NoSQL数据库视为信息缓存,SQL是数据的权限,NoSQL存储更新了更新.现在,这是通过我们的应用程序完成的,因此当请求进行更改时,它将在SQL数据库和NoSQL数据库中生成.这有时会失败,因为有时NoSQL更新失败,或者其他情况导致NoSQL数据库失去同步.
我可以每隔X分钟进行批量更新,但数据存储中有很多信息,确保它们同步需要几个小时.我们有一些时间戳来改变已经改变的东西,但这并不总是准确的.
我想知道保持数据存储(辅助数据库缓存)与我的主商店同步的一些推荐策略是什么?
我正在进行同步以将sqlite DB镜像到服务器.
我有一个Master-Detail表,其中的详细信息必须尽快发送到服务器.但是,细节3可能在细节2之前到达.我需要模仿对文档所做的步骤并遵守操作的顺序.
在本地保存记录时,我发送通知然后发布数据.如何使用AFNetworking保证严格的顺序订单?
声明插件的首选项应该在firefox安装中同步的格式是什么?我看到你应该创建一个简短的描述,services.sync.prefs.sync.extension.frobnaz.foobar但应该如何在package.json中输入定义插件的首选项?例如,假设我在那里定义了一个偏好:
"preferences": [{"name": "show_xyz",
"type": "bool",
"title": "Show XYZ",
"value": true}]
Run Code Online (Sandbox Code Playgroud)
在firefox中,about:config这最终转化为偏好extensions.<addon id>@jetpack.show_xyz.那么应该如何services.sync.prefs.sync.*创建偏好?
是否有可能以一种简单的方式来做相当于Java的工作
wait(long timeMillis)
Run Code Online (Sandbox Code Playgroud)
在指定的时间内在监视器上(互斥锁+ cond,粗略地)等待,如果没有信号则返回?
我在文档中找不到任何东西或在谷歌上搜索,虽然它当然可以通过制作一个WaitGroup和定时器goroutine pop来玩一些游戏,但这似乎很乏味/烦人/低效才能获得这个简单的功能(这是我遇到的任何底层系统线程库直接支持的方式)
编辑:是的我们都阅读了http://www.golang-book.com/10/index.htm以及https://blog.golang.org/pipelines - 再次,创建更多线程是一个"坏"(非性能的解决方案,并且渠道也不太适合这个.想象一个用例是一个典型的并发服务器Join()方法......(请不要告诉我反转控件并使用一个Listener模式.你并不总是可以更改你正在使用的API. ..)