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 @@ +