As said, you can update your database with the expected completion time. In addition, there is no need to sync with your client upon completion. You can tell the client: this building will be completed by XYZ, unless I tell you differently.
Most game servers probably don't use quartz, but rather a series of events of some kind. Also; Do not use your database for real-time updates. Make your updates in memory and record in the background for better performance. In the event of a failure, you only lose events that have occurred since your last recording action.
source share