最近、私はPHPでBeanstalkdの使用を研究してきました。私はBeanstalkdと(例えばlibeventなど)すべての依存関係をインストールPHPでBeanstalkdを設定する方法
- :私はここに
が、私はそれが働いて見る方法であるなど、かなりのことを学びましたが、サーバー上のセットアップに関するいくつかの質問を持ってきました私のUbuntuサーバーで。私はBeanstalkdデーモンを起動します(これは基本的には常に実行する必要があります)。
- 私のウェブサイトのどこか(ユーザーが何らかの行動をするときなど)は、Beanstalkdキュー内のさまざまなチューブに追加されます。
私は基本的にPHPスクリプトを実行するデーモンとして実行されるbashスクリプト(以下のようなもの)を持っています。
#!/bin/sh php worker.php
4)労働者のスクリプトがキューに入れられたタスクを実行するために、このような何かを持っているでしょう。今ここに
while(1) {
$job = $this->pheanstalk->watch('test')->ignore('default')->reserve();
$job_encoded = json_decode($job->getData(), false);
$done_jobs[] = $job_encoded;
$this->log('job:'.print_r($job_encoded, 1));
$this->pheanstalk->delete($job);
}
は、(上記の設定に基づいて、私の質問です私なら、私を修正しました私はそれについて間違っている):
私はRSSフィードをデータベースなどにインポートする作業があります。 10人のユーザーがこれを一度に行うと、それらはすべて「テスト」チューブにキューイングされます。しかし、彼らは一度に1つだけ実行されます。同時に10個の異なるチューブをすべて実行する方が良いでしょうか?
さらにチューブが必要な場合は、10個のワーカースクリプトが必要になることもありますか? watch()関数内の文字列リテラルを除いて、基本的に同じコードで同時に実行される各チューブ用のものです。
このスクリプトをデーモンとして実行すると、どのように動作しますか?それは常にworker.phpスクリプトを実行していますか?そのスクリプトは、キューが理論的に空になるまでループします。デーモンはworker.phpの実行頻度をどのように決定しますか?それは単なる設定ですか?
ありがとう!
リンクありがとうございます!私は間違いなくそれらを調べます。 #2についての質問:そのスクリプトはどれくらいの頻度で実行されますか?これは、デーモンによってbashスクリプトが実行される頻度に完全に基づいていますか? – joshholat
また、Beanstalkを使って実行していることを確認するための便利な方法(コードスニペットや「ダッシュボード」タイプのもの)がありますか? – joshholat
ほとんどの/すべてのライブラリは、stats、list-tubes、およびstat-tubesコマンドを呼び出す必要があります。他にもいくつかあります。私はhttps://github.com/andreisavu/django-jackが走っているのを見たことがありませんでしたが、それもいくつかのことをすることができます。 –