タグ付けされた質問 「sync」

8
iPhoneコアデータをWebサーバーと同期し、他のデバイスにプッシュする方法 [閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 この質問を改善する 私は、iPhoneアプリケーションに格納されているコアデータをiPadやMacなどの複数のデバイス間で同期する方法に取り組んでいます。iOSのCore Dataで使用する同期フレームワークは(もしあれば)多くはありません。しかし、私は次の概念について考えていました。 ローカルコアデータストアが変更され、変更が保存されます。(a)デバイスがオンラインの場合、変更セットを送信したデバイスのデバイスIDを含め、変更セットをサーバーに送信しようとします。(b)チェンジセットがサーバーに到達しない場合、またはデバイスがオンラインでない場合、アプリは変更セットをキューに追加して、オンラインになったときに送信します。 クラウド内にあるサーバーは、受信した特定の変更セットをマスターデータベースとマージします。 変更セット(または変更セットのキュー)がクラウドサーバーにマージされると、サーバーは、なんらかのポーリングシステムを使用して、サーバーに登録されている他のデバイスにすべての変更セットをプッシュします。(私はAppleのPushサービスを使用することを考えましたが、コメントによると、これは実行可能なシステムではないようです。) 私が考えなければならない空想はありますか?ObjectiveResource、Core Resource、RestfulCoreDataなどのRESTフレームワークを見てきました。もちろん、これらはすべてRuby on Railsで動作しますが、私はこれに縛られていませんが、それは出発点です。私のソリューションに対する主な要件は次のとおりです。 メインスレッドを一時停止せずに、変更をバックグラウンドで送信する必要があります。 使用する帯域幅はできるだけ少なくする必要があります。 私はいくつかの課題について考えました: さまざまなデバイス上のさまざまなデータストアのオブジェクトIDがサーバーに接続されていることを確認します。つまり、データベースに格納されているオブジェクトへの参照を介して関連付けられているオブジェクトIDとデバイスIDのテーブルがあります。レコード(DatabaseId [このテーブルに対して一意]、ObjectId [データベース全体のアイテムに対して一意]、Datafield1、Datafield2)を作成し、ObjectIdフィールドは別のテーブルAllObjects:(ObjectId、DeviceId、DeviceObjectId)を参照します。次に、デバイスが変更セットをプッシュすると、ローカルデータストア内のコアデータオブジェクトからデバイスIDとオブジェクトIDが渡されます。次に、クラウドサーバーはAllObjectsテーブルのobjectIdおよびdevice Idをチェックし、変更するレコードを初期テーブルで見つけます。 すべての変更にはタイムスタンプを付けて、マージできるようにする必要があります。 デバイスは、バッテリーを使いすぎずにサーバーをポーリングする必要があります。 ローカルデバイスは、サーバーから変更を受け取った場合、またはそのときに、メモリに保持されているものを更新する必要もあります。 他にここで見逃しているものはありますか?これを可能にするには、どのようなフレームワークに注目すべきですか?

12
node.jsはシステムコマンドを同期的に実行します
node.js関数に必要 result = execSync('node -v'); これは、指定されたコマンドラインを同期的に実行し、そのコマンドテキストで標準出力されたものをすべて返します。 ps。同期が間違っています。知っている。個人使用のみ。 更新 これで、終了コードを提供するが標準出力を提供しないmgutzのソリューションができました!より正確な答えを待っています。 更新 mgutzが彼の答えを更新し、解決策はここにあります:) また、dgo.aが言及したように、スタンドアロンモジュールexec-syncがあります アップデート2014-07-30 ShellJS libが到着しました。これが今のところ最良の選択だと考えてください。 更新2015-02-10 やっと!NodeJS 0.12はexecSyncネイティブでサポートしています。 公式ドキュメントを見る


6
Vagrantのシンボリックリンクと同期フォルダー
Vagrantを使用して、チームに共通の開発環境を提供したいと考えています。ホストは完全に異なります: 一部はOS X、一部はLinux、一部はWindowsを使用しています。 VMwareを使用するユーザーもいれば、VirtualBoxを使用するユーザーもいます。 VMの内部では、Linuxを実行します。 これまでのところ、すべてが順調です。 私たちの考えは、各開発者が選択したIDEを使用できるようにすることです。そのため、ホストとVMの間でソースコードを共有する同期フォルダーを導入しました。これは基本的には動作しますが、シンボリックリンクを除きます。 私たちのソースコードの内部には、いくつかのシンボリックリンクがありますが、これはVM内のLinux内の問題ではありませんが、Windows上のホストとしては、これが問題の原因になります。私たちができない唯一のことはシンボリックリンクを取り除くことなので、これに対処する別の方法が必要です。 これまで、いくつかのオプションを試してきました。 Vagrantの問題に記載されている回避策がありますが、残念ながらこれはVirtualBoxのみであり、VMwareを実行している人には役立ちません。これまでのところ、使用しているプロバイダーに応じて、Vagrantfileでコードを実行する方法は見つかりませんでした。 標準の共有フォルダーを使用する代わりに、rsyncタイプを使用してみました。これはWindowsでは機能しますが、OS Xでクラッシュしsymlink has no referentます(シンボリックリンクごとに1つのエラー)。 NFSについて考えましたが、これはWindowsをホストとして使用しない場合にのみ機能します。 SMBについても考えましたが、これもホストとしてのWindowsでのみ機能します。 共有フォルダー内でマルチプラットフォームホストとシンボリックリンクの問題が発生するのは、私たちがこの惑星で唯一または最初の人だとは思えません。 この問題をどのように解決すれば、シンボリックリンクを維持しながら、別のホストオペレーティングシステムを使用できますか?

10
rsyncとの双方向同期
フォルダーa /とリモートフォルダーA /があります。Makefileで次のように実行します。 get-music: rsync -avzru server:/media/10001/music/ /media/Incoming/music/ put-music: rsync -avzru /media/Incoming/music/ server:/media/10001/music/ sync-music: get-music put-music sync-musicを作成すると、最初にサーバーからローカルへのすべての差分が取得され、次にその逆で、すべての差分がローカルからサーバーに送信されます。 これは、将来の更新または新しいファイルのみがある場合にのみ非常にうまく機能します。削除がある場合は、何もしません。 rsyncには--deleteおよび--delete-afterオプションがあり、私がやりたいことを達成するのに役立ちますが、双方向同期では機能しません。 Syn上のサーバーファイルを削除する場合、ローカルファイルが削除されていれば機能しますが、何らかの理由で(後で説明します)サーバーにはないがローカルに存在し、それらが削除されたファイルがある場合は、私はローカルでそれらを削除し、サーバーがコピーされないようにします(それが発生した場合)。 事は私が文脈で3台のマシンを持っているということです: デスクトップ ノート ホームサーバー したがって、たとえば、ノートブックの同期で削除されたファイルがサーバーにある場合があります。その後、デスクトップで同期を実行すると(削除されたサーバーファイルがまだ存在する場合)、これらのファイルを削除して、再びサーバーにコピーしました。 これはデータベースと操作の追跡でのみ可能だと思います:P より簡単な解決策はありますか?ありがとうございました。
95 file  sync  rsync  two-way 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.