私はblastnスクリプトのWebインターフェイスであるWeb2Py Webアプリケーションを持っています。Web2PyのWebユーザ間でデータベースなしで変数を共有する方法
明らかavailable_worker = multiprocessing.cpu_count() - 1
def get_workers():
global available_worker
return available_worker
def consume_worker():
global available_worker
available_worker = available_worker - 1
def free_worker():
global available_worker
available_worker = available_worker + 1
def index():
if get_workers() > 0:
consume_worker()
# run a script
free_worker()
print get_workers()
、それは毎回のように動作しません:Webアプリケーションが起動すると今、私は、私の考えは、
で、同時に実行中のプロセスを制限するために、私は、default.pyになかった方法が必要ですウェブがロードされると、available_workerがmultiprocessing.cpu_count() - 1
にリセットされます。
ウェブセッションやユーザー間でavailabe_workerを共有できる方法があるかどうかは疑問です。
ユーザーAがページを読み込むまでには、available_worker
は2で、スクリプトを実行します。ユーザAがスクリプトを実行している間に、ユーザBがwebappをロードし、available_worker
が1になり、スクリプトを実行します。 AとBがスクリプトを実行しているときにユーザCが来ると、available_worker
は0なので、スクリプトを実行する前にAまたはBのどちらかが終了するまで待たなければなりません。
私はプログラミングに新しいです、詳細な説明とサンプルコードは非常に高く評価されます。
ありがとうございます。
編集:私はちょうど私の実際の質問を実現
で、web2pyのアプリを起動したときに、初めてのweb2pyの起動時にのみinitedされる変数を、initにする方法について説明します。その後、セッション/使用は変数値を更新できます。私のコードの問題は、ページがロードされるたびに、データベースにデータを保存しても、値がmultiprocessing.cpu_count() - 1にリセットされることになります。同じ結果になります。
永続データを扱うのはデータベース全体のポイントなので、使用しない理由は何ですか? –
私の上司はデータベースがまったく欲しいとは思っていません。私は実際にweb2pyアプリケーションを起動するときに、web2pyをはじめて起動したときにのみ起動される変数をどのように初期化するのかということに気付きました。その後、セッション/使用は変数値を更新できます。私のコードの問題は、ページがロードされるたびに、データをデータベースに格納しても、値が 'multiprocessing.cpu_count() - 1'にリセットされ、同じ結果になることがわかりました。 –