Class QueueTemplate
- All Implemented Interfaces:
TemplateInterface
The following tags are recognized.
<enqueue name="recipients ..." data=var1 var2 ... varn" [glob="..." delim="." from="sender" nocreate="true|false"] >
<dequeue name="name" prepend="props prefix" timelimit="sec">
If "timelimit" has a suffix of "ms", then the time is taken in ms.<queueinfo name="q_name" prepend="props prefix" clear remove=true|false create=true|false>
<enqueue name="recipients ..." meta="anything" message="msg" from="sender" [nocreate="true|false"] >
- Version:
- Author:
- Stephen Uhler
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Create an object queue.static class
A bag of items to keep on the Q. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic QueueTemplate.QueueItem
Program access to the Q.static void
destroyQueue
(String name) Remove a Queue, freeing its resources.static boolean
Deprecated.static boolean
enqueue
(String to, String from, Dictionary data, boolean noCreate, boolean force) Allow a message to be enqueued from java code.static QueueTemplate.Queue
static QueueTemplate.Queue
Return a Q.void
Remove an item from the queue, and generate the appropriate properties.void
Add a text message onto a named queue.void
Return info about the Q, and optionally clear or remove it.
-
Field Details
-
Q_ID
- See Also:
-
-
Constructor Details
-
QueueTemplate
public QueueTemplate()
-
-
Method Details
-
tag_enqueue
Add a text message onto a named queue. Attributes:
- name: the name of the queue (required). "name" is adelim
list of queues to send the data too.
- from: the sender name
- data: a set of property names to send as name/value pairs. If Names provided of the form nnn#vvv, then "vvv" is taken as the value to use if it is not already set, otherwise the empty string is used as the value.
- nocreate: If set, The item will not be Queued if the Q for that recipient does not already exist.
- force: put to the queue even if its closed
- delim: The delimiter character for the list of names. (It defaults to " " for backward compatibility with the previous behavior)The property "count" contains the number of recipients for which the message was successfully Queued. The property "error.name" will contain an error message if Queueing failed. In both cases, the template prefix will be prepended. It is not considered an error condition for a message not to be delivered to a non existent Queue if "nocreate" is set.
The experimental attribute "glob" may be used instead of "name", in which case name is taken as the list of "delim" separated tokens named by the first wildcard substring of the matching glob pattern.
-
enqueue
public static boolean enqueue(String to, String from, String message, String meta, boolean noCreate, boolean force) Deprecated.Allow a message to be enqueued from java code. Use theenqueue(String to, String from, Dictionary data, boolean noCreate, boolean force)
method instead.- Parameters:
to
- : The queue namefrom
- : The sender of the datamessage
- : The message to enqueuemeta
- : The meta data, if anynoCreate
- : If true, don't create a Q if it doesn't already existforce
- : Force item onto Q even if it is closed- Returns:
- True, if the data was enqueued
-
enqueue
public static boolean enqueue(String to, String from, Dictionary data, boolean noCreate, boolean force) Allow a message to be enqueued from java code.- Parameters:
to
- : The queue name (only a single q)from
- : The sender of the datadata
- : a dictionary f name/value pairsnoCreate
- : If true, don't create a Q if it doesn'a already existforce
- : Force item onto Q even if it is closed- Returns:
- True, if the data was enqueued
-
destroyQueue
Remove a Queue, freeing its resources. -
tag_dequeue
Remove an item from the queue, and generate the appropriate properties. Attributes:
- name
- The name of the queue to examine
- prepend
- The prefix in the properties table to use to set the results. Defaults to our prefix.
- timelimit
- how long to wait for an item to appear, in sec. Defaults to 30.
- age
- Set how long the message has been q's (in seconds)
- sent
- Set the timestamp (in sec) of when the item was q'd.
- items
- Set the number of Q'd items.
- from
- Set the (unauthenticated) sender.
- error
- Something went wrong. Set an error message.
Note: this tag blocks until an item is received in the Queue (or a timelimit expires). As template processing is synchronized based on sessions, care should be taken to avoid blocking other (unrelated) session based requests while waiting on the queue.
-
dequeue
Program access to the Q.- Parameters:
name
- ; The name of the Q. A new Q will be created if it doesn't already exist.timelimit
- : how long (in ms) to wait before returning- Returns:
- The Queue item, or Null if no item is available.
-
tag_queueinfo
Return info about the Q, and optionally clear or remove it. If the queue doesn't already exist, it is created. Attributes:
- name
- The name of the queue to examine
- prepend
- The prefix in the properties table to use to set the results. Defaults to our prefix.
- clear
- If set, then clear the queue
- remove
- If set, then remove the queue
- closed=[true|false]
- set the closed state of the Q
- create=[true|false]
- Should the Q be created if it doesn't already exist (defaults to true).
- lastIn
- The timestamp (ms) of the last Q insert attempt.
- lastOut
- The timestamp (ms) of the last Q retrieval attempt.
- size
- The number of items in the Q.
- count
- The total number of items inserted into the Q
- created
- The timestamp (in ms) of the Q's creation
- expires
- The Q's expiration period (in ms)
-
getQ
Return a Q. All calls to the session manager go through here, so we can reap old queues some day. -
getQ
-