Ich arbeite an einer Anwendung, bei der viele Mitarbeiter sich im System anmelden können, um Kundenbeschwerden zu lösen. Wenn ein Mitarbeiter auf die Schaltfläche "Start" für die Beschwerde klickt, sollte der Datensatz eingefroren werden. Mit eingefroren meine ich, dass er auf dem Bildschirm anderer Mitarbeiter nicht angezeigt werden sollte (wenn der Bildschirm auf ihren Geräten mit Ajax aktualisiert wird). Außerdem sollte er nur für eine bestimmte Zeitdauer nicht angezeigt werden. Wenn der Mitarbeiter innerhalb weniger Minuten nicht auf die Beschwerde reagiert, sollte sie wieder in der Warteschlange der Beschwerden erscheinen.
Wie verwalte ich diese Zeitdauer? Ich habe einen Ansatz, bei dem, wenn der Benutzer auf "Start" klickt, könnte ich dieses Element im Cache-Objekt speichern und es ist nur gültig, bis sein Ablaufdatum erreicht ist. Dann, wenn der Bildschirm anderer Mitarbeiter aktualisiert wird, zeige ich nur diejenigen Elemente, die nicht bearbeitet wurden und nicht im Cache vorhanden sind. Wenn es im Cache vorhanden ist, bedeutet das, dass es von jemandem bearbeitet wird. Bin ich auf dem richtigen Weg? Oder gibt es einen besseren Weg, das zu tun?