queue

package
v1.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2023 License: Apache-2.0 Imports: 12 Imported by: 0

README

Kubemq queue Target Connector

Kubemq queue target connector allows services using kubemq server to access queue messaging services.

Prerequisites

The following are required to run the queue target connector:

  • kubemq cluster
  • Azure active storage account
  • Azure active with storage enable - with access account
  • kubemq-targets deployment

Configuration

queue target connector configuration properties:

Properties Key Required Description Example
storage_account yes azure storage account name "my_account"
storage_access_key yes azure storage access key "abcd1234"
policy no exponential or linear "retry_policy_exponential",default(retry_policy_exponential)
max_tries no request max tries (1 disable) "1",default(1)
try_timeout no Maximum time allowed for any single try "3000",default(10000) milliseconds
retry_delay no Backoff amount for each retry "1000",default(600) milliseconds
max_retry_delay no delay between retries "1000",default(1800) milliseconds

Example:

bindings:
  - name: kubemq-query-azure-queue
    source:
      kind: kubemq.query
      name: kubemq-query
      properties:
        address: "kubemq-cluster:50000"
        client_id: "kubemq-query-azure-queue-connector"
        auth_token: ""
        channel: "azure.storage.queue"
        group:   ""
        concurrency: "1"
        auto_reconnect: "true"
        reconnect_interval_seconds: "1"
        max_reconnects: "0"
    target:
      kind: azure.storage.queue
      name: azure-storage-queue
      properties:
        storage_account: "id"
        storage_access_key: "key".
        max_retry_delay: "180000"
        max_tries: "1"
        policy: retry_policy_exponential
        retry_delay: "60000"
        try_timeout: "1000"

Usage

Create

Create metadata setting:

Metadata Key Required Description Possible values
method yes type of method "create"
service_url yes service url path "https://test.queue.core.windows.net/test/test.txt"
queue_name yes the name of the queue to create "my_queue"
queue_metadata no key value string string queue Metadata "{"tag":"test","name":"myname"}",default(none)
{
  "metadata": {
    "method": "create",
    "queue_name": "my_queue",
    "service_url": "https://test.end.point.test.net"
  },
  "data": null
}
Push

Push metadata setting:

Metadata Key Required Description Possible values
method yes type of method "push"
service_url yes service url path "https://test.queue.core.windows.net/test/test.txt"
queue_name yes the name of the queue to send the message to "my_queue"
queue_metadata no key value string string queue Metadata "{"tag":"test","name":"myname"}",default(none)
visibility_timeout no visibility timeout value,in milliseconds "2000000000",default(100000000)
time_to_live no maximum time to allow the message to be in the queue,in milliseconds "2000000000",default(100000000)

Example:

{
  "metadata": {
    "method": "push",
    "queue_name": "test",
    "service_url": "https://test.end.point.test.net"
  },
  "data": "bXktZmlsZS1kYXRh"
}
Get Message Count

Get Message Count metadata setting:

Metadata Key Required Description Possible values
method yes type of method "get_messages_count"
service_url yes service url path and "https://test.queue.core.windows.net/test"
queue_name yes the name of the queue "my_queue"

Example:

{
  "metadata": {
    "method": "get_messages_count",
    "queue_name": "test",
    "service_url": "https://test.end.point.test.net"
  },
  "data": null
}
Delete

Delete metadata setting:

Metadata Key Required Description Possible values
method yes type of method "delete"
service_url yes service url path and "https://test.queue.core.windows.net/test"
queue_name yes the name of the queue "my_queue"

Example:

{
  "metadata": {
    "method": "delete",
    "queue_name": "test",
    "service_url": "https://test.end.point.test.net"
  },
  "data": null
}
Peek

Peek metadata setting:

Metadata Key Required Description Possible values
method yes type of method "peek"
file_name yes the name of the file to delete "myfile.txt"
service_url yes service url path and "https://test.queue.core.windows.net/test/test.txt"
max_messages no max number of messages to receive int32 "10",default(32)

Example:

{
  "metadata": {
    "method": "peek",
    "queue_name": "test",
    "service_url": "https://test.end.point.test.net"
  },
  "data": null
}
Pop

Pop metadata setting:

Pop will remove the message

Metadata Key Required Description Possible values
method yes type of method "pop"
file_name yes the name of the file to delete "myfile.txt"
service_url yes service url path and "https://test.queue.core.windows.net/test/test.txt"
max_messages no max number of messages to receive int32 "10",default(32)

Example:

{
  "metadata": {
    "method": "pop",
    "queue_name": "test",
    "service_url": "https://test.end.point.test.net"
  },
  "data": null
}

Documentation

Index

Constants

View Source
const (
	DefaultMaxMessages       = 32
	DefaultVisibilityTimeout = 100000000
	DefaultTimeToLive        = 100000000
)

Variables

This section is empty.

Functions

func Connector

func Connector() *common.Connector

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func New

func New() *Client

func (*Client) Connector

func (c *Client) Connector() *common.Connector

func (*Client) Do

func (c *Client) Do(ctx context.Context, req *types.Request) (*types.Response, error)

func (*Client) Init

func (c *Client) Init(ctx context.Context, cfg config.Spec, log *logger.Logger) error

func (*Client) Stop

func (c *Client) Stop() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL