先日は12日目の記事も担当させていただきました。去年、今年あたりにかけて、FuelPHPのパッケージを幾つか作成したので、一つだけ簡単にさせていただきます。作成したものはFuelPHPで動かす非同期処理のパッケージです。同様のパッケージについては他の方も作っていらっしゃったのですが自分のアプリ要件的にbeanstalkを入れるのが難しかったDaemon化するのに別ファイルが必要だったなどの理由から見送らせて頂き、結局自作することにしました。実際のパッケージはこちらです。packagistにも入ってますのでcomposerでinstallできます。してORMパッケージが利用出来るDBが利用できる(MySQLでのみ、現状は動作確認してます)Cronが利用できる(非同期処理の定期実行のため)が必要となっています。使い方キューの挿入はModel_TaskQueueのsave_queueを利用します。...));第一引数にはstaticなクラスメソッド名を、第二引数には該当メソッドに渡す引数を配列で渡します。その他の引数は後ほど説明します。データはDBにINSERTされます。queue実行時、溜まっているキューをDBのID順に引っ張って処理します。taskにつき処理するキューは1つです。並列処理したい場合にはcronで数秒おきに実行をしたり、複数サーバで処理したりすると良いかもしれません。上記は飽く迄基本処理であり、「もう少し細かい設定をしたい」場合のオプションが幾つか存在します。3つほどピックアップして説明させていただきます。先の例の用に数秒に1回処理を抽出すると、サーバ側でタスク処理だけでパンクしてしまう事も、当然あります。そこで本パッケージでは「1サーバで同時に動かせる限界数」を設定しています。いう感じで、処理が開始される前に現在処理しているキュー数を確認し、負荷調整を行うことができます。キューの優先順位の設定キューには優先順位がつける事が出来ます。第四引数で指定ができ、デフォルトは100です。仮に優先処理したいキューに99などをあてておくと、デフォルトより優先的に処理する事が可能です。キューの種別単位の同時実行数制限Aの処理は2つ同時に実行したくない、Bの処理は4つまでしか実行させたくない、などの複数要件が重なる際に有効なオプションです。Bの処理),と設定すると、Aの処理は1つ、Bの処理は4つの同時処理が限界となります。※この設定値は並列処理の限界数指定の影響を受けるため、限界値の設定はそれぞれ調整する必要があります。第三引数で指定できます。まとめという感じでざっくりしたパッケージを造りました。「後々までの運用に責任持てない」という不安もあるかと思いますが、出せばどうにかなるという適当感で私は出しちゃってます。(1)はてなブログをはじめよう!hinashikiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。