| Conditions | 6 |
| Paths | 2 |
| Total Lines | 25 |
| Code Lines | 17 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 37 | public static function deliver(self $task, $bySendMessage = false) |
||
| 38 | { |
||
| 39 | $deliver = function () use ($task, $bySendMessage) { |
||
| 40 | /** |
||
| 41 | * @var \swoole_http_server $swoole |
||
| 42 | */ |
||
| 43 | $swoole = app('swoole'); |
||
| 44 | if ($bySendMessage) { |
||
| 45 | $taskWorkerNum = isset($swoole->setting['task_worker_num']) ? $swoole->setting['task_worker_num'] : 0; |
||
| 46 | if ($taskWorkerNum === 0) { |
||
| 47 | throw new \InvalidArgumentException('LaravelS: Asynchronous task needs to set task_worker_num > 0'); |
||
| 48 | } |
||
| 49 | $workerNum = isset($swoole->setting['worker_num']) ? $swoole->setting['worker_num'] : 0; |
||
| 50 | $totalNum = $workerNum + $taskWorkerNum; |
||
| 51 | return $swoole->sendMessage($task, mt_rand($workerNum, $totalNum - 1)); |
||
| 52 | } else { |
||
| 53 | $taskId = $swoole->task($task); |
||
| 54 | return $taskId !== false; |
||
| 55 | } |
||
| 56 | }; |
||
| 57 | if ($task->delay > 0) { |
||
| 58 | swoole_timer_after($task->delay * 1000, $deliver); |
||
| 59 | return true; |
||
| 60 | } else { |
||
| 61 | return $deliver(); |
||
| 62 | } |
||
| 64 | } |