Ich verwende einen solchen select
auf mehreren Fällen:select ignored slow case?
for {
select {
case data:= <- highFreqChan:
// do something:
case <- time.After(time.Second * 5):
// send some heartbeat like data...
}
}
Ich finde, dass, wenn highFreqChan
riesige Daten bekam, wird nicht der Herzschlag Fall eintreten, und wenn Stoppdaten highFreqChan
, den Herzschlag Fall wieder lebendig Senden , wie man es immer den Herzschlagfall eingibt, während das highFreqChan
immer noch arbeitet?
Sie können den Herzschlag hinzufügen goroutine – bayrinat
Mögliche Duplikat zu trennen [Schreiben Sleep-Funktion basierend auf der Zeit. Nachher] (https://stackoverflow.com/questions/32937883/writing-sleep-function-based-on-time-after/32937957#32937957). – icza