the shuffle option for auto dj plays tracks to often. have 2500 tracks in but it repeat the same songs.
The RANDOM_UNIQUE_PERIOD setting in /usr/local/centovacast/etc/centovacast.conf controls how long Centova Cast will "remember" which tracks were played and avoid repeating them. During that period, you will not hear the same track repeated unless you have multiple copies of the song in different files in your media library.
in v2 the handling was more better.
With all due respect, if that's true then you're imagining it.
v3 uses the exact same code as v2 for this -- it's literally identical.
All my mp3s are 1-3 hours long (dj mixes)
I wonder if the length has anything to do with it?
Yes, per above the RANDOM_UNIQUE_PERIOD value is specified in minutes so if your tracks are very long, you won't see the same level of randomization as a station that has, for example, typical 3-5minute tracks. For 3hr tracks, the default RANDOM_UNIQUE_PERIOD of 6hr will basically only guarantee that you never hear the same two tracks back-to-back, but will do nothing beyond that.
Increasing the RANDOM_UNIQUE_PERIOD value will increase the randomness but will increase CPU load every time a track is selected, since MySQL has to sift through a longer track history to weed out duplicates. (If all of the stations on your server are playing 1-3hr tracks then this will make no difference to performance at all, but if some of them are playing typical 3-5min tracks then those stations will be impacted.)