bat_coder/etzelclient

一个连接到 etzel 服务器的最小化 PHP 库

dev-master 2015-08-26 19:16 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:14:51 UTC


README

# Etzel 服务器 PHP 客户端:在您的 composer.json 文件中添加 { "minimum-stability": "dev", "require": { "bat_coder/etzelclient": "dev-master" } }

1. publish(queuename,message,options)

此函数将消息推送到 etzel 服务器。所需参数包括 queuename(您想发布的队列名称)、message(您想发布到队列的消息),options 包含延迟和过期功能。当消息插入需要延迟或消息有效性需要过期时,可以使用 options 参数。options 参数不是必填项。延迟和过期时间以秒为单位。

示例:

<?php

$etzel = new EtzelClient("ws://127.0.0.1:8080/connect");

$emails= ["abc@example.com","def@example.com","hij@example.com"];

foreach($emails as $email){
    
    $etzel->publish("group1", $email);
}
?>

test 是队列名称,hi 是消息,延迟为 0 秒

发布额外的选项

    $etzel->publish('test','hi',{delay:5,expires:3600,priority:0});
  • delay:项目将在此秒数过去后才能在队列中可用。默认为 0 秒。最大值为 365 天(秒)。

  • expires:在删除项目之前,将其保留在队列中的秒数。默认为 0(365 天)。

  • priority:可以是 -20、0、20(高、中、低)。

2. subscribe(queuename,callback)

subscribe 函数从 etzel 服务器获取消息。所需参数包括 queuename(您想获取数据的队列名称),callback 是您需要提供的自定义函数。

示例:


    ec->subscribe("test",cb);

在这里 test 是队列名称。从特定队列获取数据的实体被称为工作进程。您可以在同一队列上运行多个工作进程。服务器在多个工作进程之间提供负载均衡。获取消息将从队列中删除消息(在 60 秒后重新入队)。

acknowledge(queuename,uid)

要永久删除它,我们使用 acknowledge 函数,该函数从队列中删除/确认特定的消息。所需参数包括 queuename 和您想要确认的消息的 ID。

从队列收到的响应如下:

收到的所有响应都在标准的 JSON 格式。

找不到队列:

{
    "cmd":"nok",
    "err": "Q_NOT_FOUND"
}
```

#### No Message Available in the requested Queue:-

{ "cmd":"nomsg", "qname": "$Q_NAME" }


#### Server says it is OK to go to sleep

{ "cmd":"okslp", "qname": "$Q_NAME" }


#### Message Available in the requested Queue:-

{ "cmd": "msg", "qname": "$Q_NAME", "uid": "$uid", "error_count": "$count", "msg": "$message" }


#### Queue is awake:-

{ "cmd":"awk", "qname": "$Q_NAME" }