1

私のウェブサイトに、同じユーザーが2回続けてアクセスしないようにしたい特定のページがあります。これを防ぐために、(Pythonのスレッドライブラリから)Lockオブジェクトを作成する予定です。ただし、セッション間でそれを保存する必要があります。Lockオブジェクトをセッション(具体的にはBeakerセッション)に格納しようとするときに注意すべき点はありますか?

4

2 に答える 2

1

threading.Lockインスタンスをセッション(またはシリアル化が必要な他の場所)に格納することはひどい考えであり、そうしようとするとおそらく例外が発生します(そのようなオブジェクトはシリアル化できないため、たとえばpickledにすることはできません) 。プロセスの協調シリアル化の従来のアプローチは、ファイルロックに依存しています(たとえば、/tmp/locks/<username>指定したように、ユーザーごとにロックを設定する場合など、ディレクトリ内の「人工」ファイル)。ウィキペディアのエントリは、一般的な領域をうまく説明していると思います。実行しているOSの順序を教えていただければ、より具体的なものを提案する可能性があります(残念ながら、このためのクロスプラットフォームソリューションがあるとは思いません)。

于 2010-05-09T04:49:22.860 に答える
0

ロックをロックしてセッションに保存するには2つの手順が必要であり、ロックのアトミックアクションの目的が無効になるため、これはひどい質問であることに気づきました。

于 2010-05-08T17:01:42.610 に答える