2

ImageMagick を使用して画像を生成するサイトに取り組んでいます。サイトは毎分数百のリクエストを受け取り、これを行うために ImageMagick を使用すると、サイトがクラッシュします。

そのため、Redis と Php-resque を実装して、別のサーバーのバックグラウンドで ImageMagick を生成し、メインのサーバーがクラッシュしないようにしました。問題は、画像を完成させるのにまだ非常に長い時間がかかることです. サーバーがこれらの画像の処理で非常にビジーであるため、ユーザーは画像リクエストを最大 2 ~ 3 分待つことが予想される場合があります。

どのような情報を提供すればよいかわかりませんが、アドバイスを求めています。ImageMagick リクエストの初期処理時間を短縮できれば、処理できる画像の量を高速化できることは明らかです。

以下は、使用する ImageMagick スクリプトのサンプルです。

convert -size 600x400 xc:none \( ".$path."assets/images/bases/base_image_69509021433289153_8_0.png -fill rgb\(255,15,127\) -colorize 100% \) -composite \( ".$path."assets/images/bases/eye_image_60444011438514404_8_0.png -fill rgb\(15,107,255\) -colorize 100% \) -composite \( ".$path."assets/images/markings/marking_clan_8_marking_10_1433289499.png -fill rgb\(255,79,79\) -colorize 100% \) -composite \( ".$path."assets/images/bases/shading_image_893252771433289153_8_0.png -fill rgb\(135,159,255\) -colorize 100% \) -compose Multiply -composite \( ".$path."assets/images/highlight_image_629750231433289153_8_0.png -fill rgb\(27,35,36\) -colorize 100% \) -compose Overlay -composite \( ".$path."assets/images/lineart_image_433715161433289153_8_0.png -fill rgb\(0,0,0\) -colorize 100% \) -compose Over -composite ".$path."assets/generated/queue/tempt_preview_27992_userid_0_".$filename."_file.png

私の理論では、これにかなり時間がかかるのは、画像を着色するプロセスによるものです。このプロセスを最適化する方法はありますか?

大量の imagemagick プロセスを処理した経験がある人、またはリクエストを最適化するための非常に簡単な方法を理解できる人なら誰でも、私はとてもうれしいです。

ありがとうございました :)

4

2 に答える 2

0

キューは一度に 1 つずつ処理されていますか? 並行して実行し続ける並行ジョブを作成しようとしたことがありますか? その場合、一度に複数の要素を処理しますか?

于 2015-08-27T18:30:46.713 に答える