У меня Ubuntu работает XAMPP ( стек лампы: Linux, Apache, MySQL, PHP, Pear ). Я хотел бы использовать PHP и Beanstalkd вместе, чтобы сделать простую очередь, когда пользователь переходит на page1.php , JOB отправляется в QUEUE для захвата WORKER . Задача JOB – это оператор SQL, который затем выполнил WORKER:
То, что я сделал до сих пор:
Установленный Beanstalkd: sudo apt-get install beanstalkd
Разработал php-код и «задание», которое должно быть выполнено на стр . 1.php . Задача заключалась в том, чтобы отправить sql-оператор $sql
в очередь для выполнения рабочими (в будущих версиях задание будет намного сложнее, поэтому система очередей будет еще более важна).
page1.php:
if (isset($_SESSION['authenticated'])) { //if the user is logged in, send an sql statement to the queue $user_id = $_SESSION['id']; $sql = "UPDATE user_table SET count = count + 1 WHERE id = {$user_id}"; //... missing code that would send the statement } ?>
РАБОЧИЙ:
<?php $stmt = $conn->query($sql);//simple update ?>
ПРОБЛЕМА / ВОПРОС:
Проблема в том, что я не знаю, какие функции вызывать, чтобы создать рабочего, какую функцию вызывать для отправки очереди. Я искал в Интернете различные примеры, но нет полных и с очень расплывчатыми объяснениями. Я видел, что существует нечто, называемое pheanstalkd, которое я читал, было оберткой для beanstalkd, и многие люди используют его в Интернете, но я не уверен, что это требование или нет. Может ли кто-нибудь направлять меня в правильном направлении, с какими функциями мне нужно позвонить или какие коды мне нужно выполнить в терминале linux, чтобы просто запустить этот один пример? Вся обратная связь очень ценится и поможет мне не потерять больше волос на этой неделе.
РЕШЕНИЕ НАЙДЕНО:
После нескольких исследований мне удалось заставить его работать! Достаточно приличного количества, чтобы добраться до этого момента. Этот процесс был следующим:
sudo apt-get install beanstalkd
в терминале linux для установки beanstalkd. sudo apt install composer
для установки композитора, который рекомендуется использовать для установки pheanstalk. Создайте файл composer.json
, который позволит композитору узнать, какую библиотеку загрузить и какую версию указанной библиотеки. Например:
{ "require": { "pda\pheanstalk": "2.1.1" } }
Выполните composer install
в терминале linux. Это нужно сделать в той же папке, что и файл composer.json.
Включите необходимый код, который будет инициировать класс Pheanstalk
и использовать его как задокументированный. И это все! Образец кода будет выглядеть следующим образом:
<?php require_once('vendor/autoload.php');//require the autoload file provided by //composer //Initiate an instance of the Pheanstalk class $pheanstalk = new Pheanstalk_Pheanstalk('127.0.0.1'); //adding a job to queue/tube testtube: $pheanstalk->useTube('testtube')->put('message'); //obtaining the job by a worker: $job = $pheanstalk->watch('testtube')->ignore('default')->reserve(); echo $job->getData;//outputting the message $pheanstalk->delete($job);//deleting the job from the queue. ?>