Youtube のビデオを Web アプリからダウンロード・エンコードできるようにしていたのですが、この Web アプリの実装は、ダウンロード及びエンコードの間レスポンスはユーザに返却されないというクソ実装でした。 リクエスト自体は XHR で行うのですが、Catalyst に付いてくる開発用サーバは (たしか) 1 プロセス・1 スレッドで動作します。結果として、ダウンロードとエンコードが完了するまでの間、当該プロセスは占有され、いかなる処理も実施できないという困った状態に陥っていました。 この状況を打破するために、ジョブキューでダウンロード・エンコードを行うようにすることを決意。また、これを機に、Youtube からのダウンローダを独自実装から、xaicron さんの WWW::YouTube::Download に差し換えてみました。 worker 実装は以下の通り。 use str