I am creating an application with the following criteria:
- work items: items that need to be manually processed over the Internet by users (short one page)
- Multiple Work Item Users
- Each user has a work item queue
- There is a search that allows users to browse “work items” and assign “work items” to their queues
- Users can take “work items” from other people's queues, assigning them to themselves
Note: work items only work once. This is not a wiki page, it is rather a corresponding exercise that should be performed by only one user. After the "work item" will work, it will disappear from the system (except for some audit / reporting), which is somewhat reminiscent of a bug tracking system
Which option do you think is better? Can you provide any major applications that support your opinion?
Option 1:
- When user A views or operates a work item, the work item is blocked.
- When other users go to the "work item" after user A opens the "work item", they can only see the "work item". They cannot write.
- The lock expires after n minutes, after which another user can block the "work item".
Option 2:
- Any user can pull out a "work item" without locking it.
- If user A works with the "work item" by submitting the form, and user B works with the same "work item", then the work of user A will affect the database, and user B will be informed that their changes have not been accepted affect because another user has changed the "work item".
I personally like option 2. Thoughts are asking?
concurrency locking multi-user editing
ckarbass
source share