2017-06-17 5 views
0

まず、この問題はコード提案のリクエストではなく、他の人が特定の問題に対して取る一般的なアプローチに関する質問です。 私は、共有サーバー上に保持されているメディアファイルの内容をユーザーが確認できるように、PythonでWebアプリケーションを作成する作業を行ってきました。また、各ファイルのレコードが収集されるpostgresデータベースが存在する可能性があります。Python Webアプリケーションのアイデア - 複数のユーザーのインクリメンタル/ユニークなファイルの提案

私はへのWebアプリたい:

1)をチェックする至っていないファイルから(チェック)し、次の未チェックのファイルへのリンクを持っている次のファイルを提案する前のチェックの結果、一度持って提出されました。

2)同じファイルを複数のユーザーに同時に提示させないようにします。

ファイルをチェックしているユーザーが1人であれば、それは簡単ですが、複数の同時ユーザーで上記の2つのポイントをどのように達成するのかという概念がわかりません。
私が言っているように、これはコードリクエストではありません。私はちょうどこのアプローチのアプローチ/ツールがこのタイプのプロジェクトに最も適していると考えています。 便利なPythonライブラリがあれば、私は何か推奨事項を聞くことに興味があります。

ありがとうございました

+0

私はアイデアの共有のためにdownvotedを取得したくありません。おそらく、再帰呼び出しをして、すべてのディレクトリとその子を表示したい場所を表示し、fileName、path、isChecked、checkedByの構造を持つテーブルに挿入してから、それらがチェックされると、 checkByを保存するテーブル –

答えて

1

これらの要件は、多かれ少なかれ従うべきです。あなたのシステムの複数のセッション、さらには複数のデプロイメントで各ファイルの状態を共有できる永続的なデータベースがあり、それはPython + PostgreSQLで多かれ少なかれ与えられます。

yuuがプロセス全体に使用できるいくつかのフィールドを持つPythonクラスを作成し、SQLAlchemyやDjangoのようなORMを使用してそれらをデータベースにバインドすることをお勧めします。あなたが必要とするフィールドは、ファイル名、ファイルパス、タイムスタンプ、check_status、さらには "locked_for_checking"や "checker"(Usersコレクションの外部キーかもしれません)のようなものです。与えられたユーザのためにファイルを提示する際には、 "locked_for_checking"フラグを設定します。リスト全体に対して、 "checked"または "locked_for_checking"というファイルを含むリストを作成します。 (そしてタイムスタンプ/サイズ、またはあなたの要件を満たす他のメタデータでファイルをソートする)。

最初のユーザーが指定された時間枠内でチェックを完了しない場合は、「確認のためのロックを解除する」ロジックが必要ですが、そのとおりです。

+0

ありがとうございました、それは役に立ちました、それは理にかなっており、私が探していた情報のようなものです。 – neilH

関連する問題