RequestRetryTrait.php 525 B

12345678910111213141516171819202122232425
  1. <?php
  2. namespace addons\WangDianTong\common\traits;
  3. trait RequestRetryTrait
  4. {
  5. /**
  6. * @param \Closure $closure
  7. * @param int $retry
  8. * @return mixed|true|null
  9. */
  10. protected function retry(\Closure $closure, int $retry = 3)
  11. {
  12. $res = null;
  13. if ($retry < 1) $retry = 1; // 最小1
  14. while ($retry) {
  15. $res = $closure->call($this);
  16. if ($res === true) break;
  17. --$retry;
  18. // 是否需要sleep?
  19. }
  20. return $res;
  21. }
  22. }