have a simple setting on a workflow to say if it is allows to be running if it is already running. If it is already running have it wait for the first instance to finish before it starts.
Workflows that collect and store data can have issues if the same things are being done at the same time.