From 53823c1ed7f89f2cca11770242e5e2f56604e852 Mon Sep 17 00:00:00 2001 From: Henry Whitaker Date: Wed, 8 Apr 2020 14:03:41 +0100 Subject: [PATCH] Moved API run call to queue Now doesn't take like 60 seconds to run a speedtest from the API. Leaving it standard in the artisan command --- app/Helpers/SpeedtestHelper.php | 6 ++-- app/Http/Controllers/SpeedtestController.php | 5 +-- app/Jobs/SpeedtestJob.php | 37 ++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 app/Jobs/SpeedtestJob.php diff --git a/app/Helpers/SpeedtestHelper.php b/app/Helpers/SpeedtestHelper.php index 76214efd..dfda7d22 100644 --- a/app/Helpers/SpeedtestHelper.php +++ b/app/Helpers/SpeedtestHelper.php @@ -5,9 +5,11 @@ namespace App\Helpers; use App\Speedtest; class SpeedtestHelper { - public static function runSpeedtest() + public static function runSpeedtest($output = false) { - $output = shell_exec('speedtest-cli'); + if($output === false) { + $output = shell_exec('speedtest-cli'); + } $output = preg_replace("/\r|\n/", "", $output); $pattern = '/([0-9\.]{1,}) ms.*Download: ([0-9\.]{1,} [A-Za-z]{1,}\/s).*Upload: ([0-9\.]{1,} [A-Za-z]{1,}\/s)/'; diff --git a/app/Http/Controllers/SpeedtestController.php b/app/Http/Controllers/SpeedtestController.php index a087193a..5fcdc3bc 100644 --- a/app/Http/Controllers/SpeedtestController.php +++ b/app/Http/Controllers/SpeedtestController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Helpers\SpeedtestHelper; +use App\Jobs\SpeedtestJob; use Exception; use Illuminate\Http\Request; @@ -28,10 +29,10 @@ class SpeedtestController extends Controller public function run() { try { - $data = SpeedtestHelper::runSpeedtest(); + $data = SpeedtestJob::dispatch(); return response()->json([ 'method' => 'run speedtest', - 'data' => $data + 'data' => 'a new speedtest has been added to the queue' ], 200); } catch(Exception $e) { return response()->json([ diff --git a/app/Jobs/SpeedtestJob.php b/app/Jobs/SpeedtestJob.php new file mode 100644 index 00000000..dd256bba --- /dev/null +++ b/app/Jobs/SpeedtestJob.php @@ -0,0 +1,37 @@ +