問題タブ [beanstalkd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Beanstalkd サーバーが利用できない問題?
Laravel 4 で beanstalkd を使用したいので、メールを送信するためにキューに入れることができます。laravel 4には、すぐにロールアウトできるbeanstalkdがあることに気付きました(いくつかの構成設定を設定する必要があります)。GUIを使用してbeanstalkdを監視する場合の私の問題。phpBeanstalkdAdmin と beanstalkd_console の両方をインストールしました。ブラウザで beanstalkd_console にアクセスすると、すべて正常に表示されますが、次のエラーが発生します。
エラー: サーバーが利用できません
phpBeanstalkdAdmin を使用すると、管理インターフェイスのみが表示され、ボタンはどれも機能しません。サーバーを適用できません。インターフェイスを介してチューブにジョブを追加できません。
ubuntu 12.10サーバーでbeanstalkdを実行するために使用しているコマンドは次のとおりです。
beanstalkd -l 127.0.0.1 -p 11300
このコマンドは正常に機能しているように見え、サーバーが実行または監視を開始します。
beanstalkd_console の include.php で confif オプションを確認しましたが、すべての設定が正しいです。誰かが同様の問題を経験したことがありますか、または原因が何であるかを知っていますか?
laravel - Beanstalkd / Pheanstalk - まったく動かない! (ワンプ/PHP/ララベル)
それで、組み込みのLaravel 4でPheanstalkキューを動作させようとしています(beanstalkd libをインストールする必要がありました)。
これで完了です... 私は私の労働者に仕事を送ろうとしています。私がするたびに、このエラーが発生します
ログにも次のエラーが表示されます。
「php artisan queue:listen」を実行するとすぐにループしているようです。
beanstalkd のコンソールをダウンロードし、サーバー localhost:11300 をリッスンするように構成しました。
エラーが発生します:未処理の応答。
httpd.conf を変更し、Listen 11300 を追加して再起動しました。
私が間違っているアイデアはありますか?Beanstalkd のドキュメントはあまり見当たりませんし、Laravel のドキュメントも役に立ちません。
アイデアをありがとう!
php - PHP/Beanstalkd: 複数のワーカーを並行して生成する
どの MX レコードがメール アドレスに属しているかを確認するスクリプトがあります。チェックするメールは約 30 万件あります。そのため、シングル スレッド プロセスには長い時間がかかります。
私はキューを持つbeanstalkdを持っており、phpはファイル経由でそれに電子メールを送信しています。ただし、キューを実行するワーカーは 1 つだけです。私は現在、プロセスのために10以上のワーカーを生成するのに途方に暮れています。
do_job_mx.php を実行すると、電子メールのみを含むファイルが開き、それらがキューに渡されます。
ファイルから電子メールを取得してキューに入れる PHP コード - do_job_mx.php:
ワーカーの php コード - do_worker_process_mx.php:
監視設定:
私は現在、プロセスのために10以上のワーカーを生成するのに途方に暮れています。
実行中のプロセス数:
queue - Laravel 4 - パッケージ クラスをキュー ワーカーとして使用する方法
初めての Laravel 4 パッケージをビルドしました。
私は職人を使って構造を作成しました。
パッケージを使用してキューを処理する必要があります (ワーカーとして)。
組み込みの Beanstalk キューを使用しており、それを構成しており、キューに追加できます。
キューの処理に使用するクラスに正しいパスを追加するための正しい構文は何ですか?
クラスがここに保存されている場合、これを機能させることができます/app/controllers/TestClass.php (これは自動ロードされるため)
例:
しかし、クラスがパッケージに含まれている場合、クラスとして何をキューに入れる必要がありますか?
このファイルはワークベンチにあります:
workbench\vendor\package\src\Vendor\Package
私のパッケージコンポーザーファイルには
例えば。Queue::push('vendor\package\TestClass', array('message' => $message));
php artisan queue:listen を実行すると、キュー内のアイテムが正しく取得されますが、キューの処理に使用したいクラス (パッケージ内) が見つかりません。
何らかの理由で、クラスがロード (または自動ロード) されていません。それを実現する方法がわかりません。
すべての助けに感謝します
command - ネストされたクロージャー、コマンド、および依存関係を持つキュー マネージャー
私は Laravel を初めて使用し、処理スクリプトを処理するキューを作成しようとしています。処理スクリプトは、夜間の cron ジョブによってトリガーされます。
私はすでにbeanstalkdをセットアップしてキューを操作しています。また、artisan を使用してスクリプトを開始できる非常に単純なコマンドを設定しています。私は Laravel を初めて使用し、処理スクリプトを処理するためのキューを作成しようとしています。処理スクリプトは、夜間の cron ジョブによってトリガーされます。
私はすでにbeanstalkdをセットアップしてキューを操作しています。また、artisan を使用してスクリプトを開始できるようにする非常に単純なコマンドをセットアップしました。
私が抱えている主な問題は、スクリプトに依存関係があることです。例えば:
最初にスクリプト A を正常に実行する必要があり、次に B を正常に実行する必要があり、次に C と D を実行する必要がありますが、C と D の順序は重要ではありません
これらはそれぞれ非常に異なるタスクであり、個別に維持したいのですが、キュー内の依存関係を管理する必要があります。処理を処理するために作成されたモデルとライブラリが既にありますが、すべてうまく機能しています。
モデルには既にロジックがあるので、必要なのはキューの小さな呼び出しだけです。最初は、クロージャを使用してすべてを 1 つのファイルに書きたかっただけです。簡単な例を以下に示します。
それは機能しますが、これは A のためだけのものです。B、C、D を追加する必要があります。そこで、その中にクロージャを追加することにしました。
これは動作しません。クロージャ内でクロージャを実行すると問題が発生するようです。また、ジョブ B が開始される前にジョブ A が削除される可能性があるという問題もあります。
その例は、私が実際に行う必要があるものよりも少し単純化されています。より良い例を次に示します... A の完了後、一連のものを取得し、それらのそれぞれをループして B を実行する必要があります。次に、前に、B から生成された C と D があると言いました。 ..しかし、これはすでに複雑になっているため、CとDの部分にはまだ到達していません。
そのため、ネストされたクロージャーはまだ機能しません。私の次のステップは、クロージャーをネストするのではなく、代わりにクラスを作成することでした。Aプロセスを開始するには、私がしなければならないでしょう
それで
それで
ProcessC と ProcessD は、実行される限り、この時点では関係ありません。この方法は機能しているようですが、ProcessB が生成される前に processA が完全に終了する場合に問題が発生していたと思います。これらのことを理解するのは長い一日でした。おそらくこれはうまくいくでしょう...もう少しテストする必要があります.
また、この方法では、Laravel または PHP 5.4 のオートローディング マジックにより、実行中の ProcessA/B/C/DI ごとに個別のファイルを作成する必要があります。ご覧のとおり、これらはそれぞれかなり短いです。これはかなり複雑な方法のように思えます。
- この方法は何らかの点で欠陥があるように見えますか?
- 他の方法でこれを行う必要がありますか?
- これを職人のコマンドとして初期化し、代わりにルートに切り替えてcurlで呼び出す必要がありますか?
- ネストされたクロージャーを機能させる方法はありますか?
beanstalkd - インストール後にbeanstalkdを起動できない
私のubuntu 13.04にbeanstalkdをインストールした後
beanstalkd -l 127.0.0.1 -p 11300
" " コマンドを実行して起動します
CLI が返されました:
どうすればいいですか?私はこのキューシステムに不慣れです。
laravel - Laravel Artisan キュー - CPU 使用率が高い
処理スクリプト用に Laravel でキューを設定しました。私はbeanstalkdとsupervisordを使用しています。さまざまなタイプの処理用に 6 つの異なるチューブがあります。
問題は、チューブごとに、artisan が常に毎秒ワーカーを生成していることです。ワーカー コードは 1 秒間スリープしているように見えますが、ワーカー スレッドは 7 ~ 15% の CPU を使用し、これに 6 チューブを掛けます...そして、チューブごとに複数のワーカーが必要です..CPU が使い果たされています。
1秒のスリープを10秒に変えてみました。これは役に立ちますが、ワーカーが復帰すると 10 秒ごとに大きな CPU スパイクが発生します。キューが完全に空であるため、現時点では何も処理していません。ワーカーが何かを探しているだけです。
また、ブラウザでページを更新したときのlaravelのCPU使用率を確認するためにテストしましたが、それは約10%でした。ワーカーは、起動するたびに laravel インスタンスをスピンアップします。
これを解決する方法はありませんか?仕事の準備ができているかどうかを聞くことができるようにするためだけに、より高価なサーバーに多額の資金を投入する必要がありますか?
編集:
解決策が見つかりました...職人のキュー:リスナーまたはキュー:ワークを使用しないことでしたキューコードを調べたところ、この問題を回避する方法はないようです。ワーカーがチェックするたびにlaravelをロードする必要がありますより多くの仕事のために。
代わりに、pheanstalk を使用して独自のリスナーを作成しました。私はまだlaravelを使用して物事をキューにプッシュしています。カスタムリスナーはキューデータを解析し、職人のコマンドを実行します。
現在、リスナーの CPU 使用率は %0 未満です。CPU が起動するのは、実際に実行する作業を見つけてコマンドをトリガーするときだけです。それで問題ありません。