2017-01-05 11 views
0

私は、インターネット上で通信する米国の異なる場所にあるマシン上に複数のセロリの労働者を持つプロジェクトに取り組んでいます。リモートCelery/Djangoワーカー用のREST APIまたは "直接"データベースアクセス?

Djangoプロジェクトを各マシンに配布し、データベースの資格情報をデータベースホストに設定する方が良いか、リモートセロリのタスクと作業者用のREST APIを提供する「メイン」Django /データベースホストが必要ですかデータベースアクセスのためにヒットする?

主に賛否両論と私が考えていない要因を探しています。

私のタスクで照会する必要があるすべてのデータと、タスクで作成する必要があるすべてのデータベースエントリを作成できる単純なPOST APIエンドポイントを提供することができます。

私は1分に1つのリクエストを全部行っているリモートワーカー10人を超えることはありません。私はこのことを考えている

はおそらく

答えて

1

答えはあまりにも多くの変数、懸念、力に依存して...私の懸念はそれほどオーバーヘッドリクエスト/レスポンスについてはあまりなく、保守性、アーキテクチャ、セキュリティについての詳細はありません意味します何か他のものになることは、 "それは...それに依存する"。

私はとにかくあなたはすでに、次の長所と短所を考えたと仮定し、しかし:

長いリクエスト/レスポンスサイクルのために作る(当然)および(Djangoプロジェクトにフロントサーバにかなりの負荷を置くAPIを使用して、アプリサーバーなど)。また、あなたのタスクでは、データベースのすべての機能(複雑なクエリ、集約など)を使用することはできません。

OTHO APIレイヤーを追加すると、内部のdbスキーマからワーカーが分離され、すべてのワーカーを停止して全員に展開して再起動する必要がなくなるため、Django側での移行と展開が容易になります。労働者。それは、労働者に影響を与えずにAPIサイドの技術を変えることさえ可能にします(私はそれをする理由は多いと思いますが...)。しかし、API全体を維持する必要があることも意味します。モデル変更やAPIの最終的な変更は、APIやタスクコードにも影響します(変更は、作業者が使用する機能を追加することである場合等)。

IOW、あなたのプロジェクトのニーズと制約については本当に依存しています(私はすでにそう言っていましたが、私はそうしませんでした)。

+0

この回答は、私がさまざまな方法や私が考えていないものの賛否両論を探しているので、良いです。 –

+0

@DustinWyattは何とか助けてくれてうれしいですが、あなたがすでに考えていたことやプロジェクト自体についてもっと詳しく話すべきでしょう。プロジェクトのことではなく、あなたのタスクなど –

関連する問題