2016-05-19 1 views
0

私は同じフランチャイズの多くの店舗のための各購入の現金登録、販売レコーダーとチケットプリンタとして機能するRails Appを開発しています。デプロイされたRails 4アプリケーションをオフラインで使用して、私が望むように同期させる方法

問題は、顧客サービスが影響を受けないように、いつでもインターネットが任意の店舗の場所でダウンするとオフラインで実行できることです。

Rails Appをオフラインで実行し、接続が再確立された後にサーバーと同期する方法はありますか?

また、オフラインで操作して、一日の終わりに同期することもできますか?

特定のデータベースが必要ですか?

+0

短い答え:はい。長い答え:それは異なります。同期は難しい。絶対にやむを得ない場合を除いて、この道を下ることは本当にありません。 – tadman

+0

@tadman代替手段がない限り、私はその道を下りたいと思っていますが、状況にはそれが必要です。 –

答えて

1

技術的には、これを行うことができない理由はありません。私はそれをやったことがあり、アプリケーションをどのように設計するか慎重であれば、実際にはうまくいきます。これら以外の

は、注意すべきものがあります:あなたは、むしろCDN

  • からよりも、あなたの公開ディレクトリからロードされることを確認する必要があるだろうということなのjQueryなど

    • JavaScriptライブラリ、 RailsにはSQLiteが付属しており、オフライン(小規模)の機能にはうってつけです。必要に応じて、ローカルデータベースサーバーをPostgresまたはMySQL(またはローカルにインストールできるもの)に使用できます。
    • 画像、フォント、およびその他のデザインアセットは、オンラインで使用する画像やフォントリソース(たとえば、Googleがフォントリソースをオフラインで使用することを制限している場合など)があると面倒なことがあります。

    オフライン動作のテストも簡単です。ノートパソコンに置き、無線LANをオフにします。それがうまくいくなら、あなたはかなり素早く知るでしょう。

    オフラインアプリとメインサーバー間のファイル同期には、技術とデータ形式の選択肢があります。 RESTスタイルの同期API、ローテクFTPプッシュ、またはrsyncを実装することができます。データ形式は、JSON(構造化データストレージの現在の王女)、よく確立されたCSV、または(シャダー)XMLでも簡単です。

    オフラインアプリケーションの構築には驚くべきことはなく、インターネットから任意にリソースをロードする機能を除いて、Railsが利用できるすべてのツールとリソースが用意されています。

  • +0

    私が最初に理解したところから、私はローカルとオンラインの両方でアプリケーションを展開する必要があります。同期(REST APIは私の選択)のために、私はローカルアプリがオンラインアプリAPIに接続できるようにする必要があります。 これは、それらが少し違っているのですか、まったく同じアプリですか? –

    +0

    それは本当に問題ではないはずです。それは単なる設計上の配慮です。 Railsはそれをまったくやることを妨げません。私はこれをしているので、あなたが持っている質問があれば、必ず質問してください。 –

    +0

    わかりました。私が誤解した場合は、私に修正してください。 1.私は、ローカルとオンラインの両方でアプリケーションを展開します。 2. REST API経由で接続します。 3.ローカルアプリを使用すると、インターネットにアクセスしている間は常にオンラインアプリが更新されます。 4。 - オフラインで再接続すると、すべての変更がオンラインアプリにプッシュされます。 5. MySQL(私が使用しているデータベース)は、ローカルアプリケーションがインターネットに再接続された日の終わりに更新され続けます。 –

    関連する問題