threadDelay
乱用を避ける
threadDelayはスレッドを指定した時間だけ遅延させる関数です。
threadDelayを乱用するのはやめましょう。
時間に依存するコードは安定性や移植性が低いためです。
次の実行でも同じ時間で処理が完了するとは限りません。 他のマシンでは同じ時間で処理が完了しないかもしれません。
また必然的にその時間だけ実行がストップしてしまうので、 待つように命令した分だけ実行が遅くなります。
代替手段
同期変数
TMVarなどの同期変数が使える場合は正確に同期できます。
Haskellの別のスレッドの実行を待つ場合などに使えます。
リトライ
言語外部のデータやイベントに依存する場合は、 retry: Retry combinators for monadic actions that may fail パッケージなどを使って細かくリトライしてください。
短い単位の繰り返しからだんだん待機時間
[Description truncada. Veja o README completo no GitHub.]