ユーザー向けのタスクのプールがあるasp.net WebフォームでWebアプリケーションを作成しましたが、いくつかのジレンマがあります。ユーザーがあるタスクを選択すると、別のユーザーが同じタスクを選択できないようにする必要があります。
私の実際のアイデアは、日付「期間」の列をテーブル(SQLサーバー)に追加し、ユーザーが作業中に更新されるタスクと列「ビジー」を追加することです。バックラウンドでは、この日付を毎回更新するスレッドが機能します。5 分間、一度「ビジー」を 1 に設定します (ユーザーがタスクでサイトを開いたときに開始されます)。
データベースには、すべてのexを開始するジョブがあります。7分、「期間」の日時が5分より古い場合、列「ビジー」を0に設定すると、タスクがプールに戻ってきます。
そのため、ユーザーがタスクの作業を終了すると、ジョブはしばらくしてからそれをプールにプッシュします。もちろん、ユーザーはいくつかのボタンをクリックして、ビジー o を 0 に設定できます。誰かが作業している間はそのタスクを利用できないようにしたいと考えています。それが良いアプローチかどうかはわかりません。たぶん、誰かがこの状況を経験したことがあります。