lang:jaDESCRIPTIONここではQudoの主な機能について解説していきます。HookQudoでは各所にHookポイントがあるので、Hookポイントをつかって各種処理を行う事ができます。enqueueする時に引数をシリアライズしたりなどです。設定した引数がJSONでシリアライズされて保存されます。Hookは利用者が好きに書く事ができるので、Qudoが持っていない機能も簡単に書く事ができます。post_workpre_enqueuejobをdatabaseにenqueueする前に呼び出されます。post_enqueuejobがdatabaseにenqueueされた後に呼び出されます。pre_workjobの実際の処理が行われる前に呼び出されます。post_workjobの実際の処理が行われた後に呼び出されます。serializejobをdatabaseにenqueueする直前、pre_enqueueの呼び出し直後によびだされます。deserializejobの実際の処理が行われる直前、pre_workの呼び出し直後によびだされます。PluginQudoでは好きにPluginを書く事ができます。print用のPluginを用意したとします。$worker->register_plugins(qw/Your::Plugin::DebugPrint/);このようにregister_pluginsメソッドにロードさせたいモジュールのパッケージ名を指定します。そのキー経由でプラグインを呼び出す事ができます。Handlingjobの処理がcompleteしなかった場合、exception_logテーブルにエラー情報が書き込まれます。errorテーブルに一定数以上のレコードが溜まらないように、適宜deleteされます。Qudoの場合はexception_logに書き込まれた情報はQudo自体が消す事は有りません。これは、知らないエラーが発生したまま情報が消えてしまう事を嫌った為です。exception_listQudoではexception_logの情報を取り出すためのメソッドを用意しています。$client->exception_list;exception_listメソッドをつかえば、発生した例外情報を参照する事ができます。発生した例外を確認したのち、もう一度リトライさせたい場合があるとおもいます。その場合は以下のようにすると良いでしょう。$client->enqueue_from_failed_job($exceptions->[0]);こうするだけで、例外が発生した時のJobの情報を元にJobが再登録されます。再登録した例外情報にはretriedが1になり同じ例外情報からは再度Jobが登録できなくなります。HandlingJobの状態を確認するために以下のメソッド群を用意しています。job_countQudoではJobが溜まりすぎていないかを簡単に調べる事ができます。$client->job_count([qw/Your::Worker::Mail/]);job_countメソッドに調べたいワーカー名を指定すると、処理されていないJobの件数を取得する事ができます。job_status_listjob_status_listメソッドを使うと、処理されたJobの情報を確認する事が出来ます。}このように、set_job_statusに1を設定してください。Jobの情報はロギングされません。