SkillAgentSearch skills...

Beansclient

Robust PHP client for beanstalkd work queue

Install / Use

/learn @xobotyi/Beansclient
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center">

beansclient

NPM Version NPM Downloads NPM Dependents Build Coverage NPM Dependents NPM Dependents

</div>

About

BeansClient is a PHP8 client for beanstalkd work queue with thorough unit-testing. Library uses PSR-4 autoloader standard and always has 100% tests coverage.
Library gives you a simple way to provide your own Socket implementation, in cases when you need to log requests and responses or to proxy traffic to non-standard transport.

BeansClient supports whole bunch of commands and responses specified in protocol for version 1.12
<br>

Why BeansClient?

  1. Well tested.
  2. Supports UNIX sockets.
  3. Actively maintained.
  4. Predictable (does not throw exception in any situation, hello pheanstalk🤪).
  5. PHP8 support.

Contents

  1. Requirements
  2. Installation
  3. Usage
  4. Docs
    • TBD

Requirements

Installation

Install with composer

composer require xobotyi/beansclient

Usage

<?php
use xobotyi\beansclient\Beanstalkd;
use xobotyi\beansclient\Client;
use xobotyi\beansclient\Socket\SocketsSocket;

$sock   = new SocketsSocket(host: 'localhost', port: 11300, connectionTimeout: 2);
$client = new Client(socket: $sock, defaultTube: 'myAwesomeTube');

##            ##
#   PRODUCER   #
##            ##

$job = $client->put("job's payload", delay: 2);
if($job['state'] === Beanstalkd::JOB_STATE_DELAYED) {
  echo "Job {$job['id']} is ready to be reserved within 2 seconds\n";
}

##            ##
#    WORKER    #
##            ##

$client->watchTube('myAwesomeTube2');

$job = $client->reserve();

if ($job) {
    echo "Hey, i received first {$job['payload']} of job with id {$job['id']}\n";

    $client->delete($job['id']);

    echo "And i've done it!\n";
}
else {
    echo "So sad, i have nothing to do";
}

echo "Am I still connected? \n" . ($client->socket()->isConnected() ? 'Yes' : 'No') . "\n";
View on GitHub
GitHub Stars92
CategoryDevelopment
Updated11mo ago
Forks10

Languages

PHP

Security Score

92/100

Audited on Apr 11, 2025

No findings