PHPデータの更新とリアルタイムで時間のかかる重い処理を実行していたために、画面がフリーズしてレスポンスがなくなってしまう事態が発生した。解決方法として、重い処理のみクーロン(定期実行)を提案したが、どうしてもリアルタイムでやりたいとのこと。単純にその問題を解決するのはクーロンだ!と思っていたけれど、PHPのフレームワークとしてLaravelを使っているし、その要望を解決するもっと便利なものがあるかもと思って調べてみた。「Laravelのキュー」というものを知るのでした。調べていて、キューを知るきっかけになったのがこの記事。簡単に言うと、キューは、裏で時間を費やす処理を非同期で実行してくれる仕組みだそうです。サイト1.設定テーブル準備キューのジョブテーブルとキューが失敗した時用のテーブルを作成します。migrate.envファイル修正QUEUE_CONNECTION=database2.ジョブの作成ジョブ作成コマンド実行。キューに投入するジョブを作成します。ジョブが実行される処理の本体です。UpdateProjectコマンドを実行すると、app/Jobsにクラスが作成されます。handle()に実行したい処理を記載する。実行したい処理はサービスにまとめていたので今回は、下記のように記載する。}}実行のトリガー設置ジョブがキューに投入されるタイミングを決めて、ジョブが実行されるトリガーを設置する。今回は、データの更新された後に実行されるようにしたいので、Controller側に記述。状況に応じて、1または2の方法で。--tries=3キューを受け付ける状態にしておく。ジョブの最大実行回数3回、新しく処理するジョブが存在しない時は、3秒でスリープ。常時稼働するような本番環境では、キューワーカを永続的に実行させるために、Supervisor設定をします。バックグランドでqueue:workプロセスを永続的に実行し続けるには、キューワーカが止まらずに実行し続けていることを確実にするため、Supervisorのようなプロセスモニタを利用する必要があります。キューSupervisor設定supervisorをインストールします。supervisor設定をします。/etc/supervisord.conf内容は下記のようにする。supervisord動作確認stdout_logfileで指定した場所にログがでるので確認してみる。調べてみると、やっぱり大抵のことは解決方法が存在するんだなと改めて実感しました。自分の知識や経験の幅を広げてくれるのは、いつもクライアントさんの(無茶な)要望だなって思いました。自分の知ってる狭い知識でやりくりすることもあるけれど、やっぱりスキルはアップデートしていきたい!今後またこういった場面での選択肢を1つ増やすことができたのでした。今後のTODOとしては、エラーのハンドリング処理は、別途考えていきたい。o_wani関連記事CentOS7にLaravel5.3のインストールとWelcomeページ表示Vagrantを使った仮想環境にLaravel5.3をインストールしてみた。PHP7.0....読んでみるCentOS7にPHP7をyumでインストールする(Vagrant)CentOS7にyumでPHP7をインストールする。インストール...読んでみるPHPは自分にとって最高のプログラミング言語だったそういえば、技術評論社のPHPの生みの親のインタビュー記事を読んだ。Linux環境にPHP7.0.1+Nginx1.8をインストールした記録です。Linux)で動かすローカル環境がVagrantで動いているLaravelの既存プロジェクトがある。今回はその既存プロジェクトをローカルの開発環境Docke...読んでみるCodeigniter3でつくったアプリをherokuで公開するCodeigniter3でつくったアプリをherokuで公開の流れをまとめました。Codeigniter側のherok...読んでみるLaravel5.7+nginxでファイルアップロードサイズの変更Laravel+nginxで作られたWebサービスのアップロードできるファイルの上限サイズを変更したいときの簡単なメモです。Linux)にインストールされているPHP5.6からPHP7.0にアップデートする。その手順を記載...読んでみるCentOS7.2でPHP7.2をインストールしlaravel5.6を動かすCentOS7.2にPHP7.2をインストールし、フレームワークとしてlaravel5.6をインストールする。owani.net#markdown.。