知の壺は管理人「もとやん」がたまに書きたくなったことを書いているノートです。大体誰かに宛てて書いています。2018.10.03タイトルのとおりです。Laravelのキューは非常に良くできていて、ワーカープロセスを別途立ち上げると常時ワーカーがキューイングされたジョブを調べ、実行してくれる仕組みを持っています。Linuxであればデーモン化して、常駐させるための仕組みもデフォルトで持っているという親切設計です。一般的なレンタルサーバですとSSHでアクセスできたとしても常駐プロセスを立ち上げておくのは難しいですよね。今どきならCronぐらいは使えるサーバが多いと思うので、多少ジョブの実行が遅れてもいいので、Cronでキューイングされたジョブを処理できれば・・!と思いました。Laravelだとタスクスケジューリングの仕組みもあって、そちらでタスクを実行できれば良いんですが、メール送信などを遅延させるのはキューであってタスクじゃないんですね(laravelの仕様上)。妥当というか当然な設計ですし、そこを組み替えるようなカスタムは気持ち悪いのでやりたくありません。そんなこんなでなにかいい方法はないものかと悩みつつ、いろいろ調べたところ最終的に参考になったのが以下の感じ。guide要するにCronで動くLaravelのタスクスケジューラを使い、タスクの中でキューのワーカープロセスを実行です。具体的にはconsole/Kernel.phpにて以下のようにタスクを設定します。2>&1って感じに設定しておくと完了です。ワーカープロセスがたくさん残りそうだけど、withoutOverlappingがあるから大丈夫なのかな。ジョブがこけるとfaild_jobsテーブルに退避されるのですが(設定していれば)、タスクスケジューラでのジョブキューワーカの起動がしなくなる場合があります。この場合、フレームワークのキャッシュクリアを行うと、再度ワーカプロセスが立ち上がる様になる模様。コメントをキャンセルメールアドレスが公開されることはありません。views試して分かった。Appsの無料版がなくなったので、無料で使えるメールサーバのニーズが個人的に上昇。ドメインたくさん持ってるので、一つのアカウントで複数ドメイン+複数アカウントを管理できるように作りこみました。無料で履歴書が作れたりするサービスなんです。これが不思議と意外に使われているっぽい。アドセンスは全くクリックされないんだけれども。views試して分かった。Appsの無料版がなくなったので、無料で使えるメールサーバのニーズが個人的に上昇。ドメインたくさん持ってるので、一つのアカウントで複数ドメイン+複数アカウントを管理できるように作りこみました。無料で履歴書が作れたりするサービスなんです。これが不思議と意外に使われているっぽい。アドセンスは全くクリックされないんだけれども。Twitter@calcsさんのツイートタイトルとURLをコピーしました。