public class QueueTemplate extends Template
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"] >
Modifier and Type | Class and Description |
---|---|
static class |
QueueTemplate.Queue
Create an object queue.
|
static class |
QueueTemplate.QueueItem
A bag of items to keep on the Q.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
Q_ID |
Constructor and Description |
---|
QueueTemplate() |
Modifier and Type | Method and Description |
---|---|
static QueueTemplate.QueueItem |
dequeue(java.lang.String name,
int timelimit)
Program access to the Q.
|
static void |
destroyQueue(java.lang.String name)
Remove a Queue, freeing its resources.
|
static boolean |
enqueue(java.lang.String to,
java.lang.String from,
java.util.Dictionary data,
boolean noCreate,
boolean force)
Allow a message to be enqueued from java code.
|
static boolean |
enqueue(java.lang.String to,
java.lang.String from,
java.lang.String message,
java.lang.String meta,
boolean noCreate,
boolean force)
Deprecated.
|
static QueueTemplate.Queue |
getQ(java.lang.String name) |
static QueueTemplate.Queue |
getQ(java.lang.String name,
boolean create)
Return a Q.
|
void |
tag_dequeue(RewriteContext hr)
Remove an item from the queue, and generate the appropriate properties.
|
void |
tag_enqueue(RewriteContext hr)
Add a text message onto a named queue.
|
void |
tag_queueinfo(RewriteContext hr)
Return info about the Q, and optionally clear or remove it.
|
public static final java.lang.String Q_ID
public void tag_enqueue(RewriteContext hr)
delim
list of queues to send the data too.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.
public static boolean enqueue(java.lang.String to, java.lang.String from, java.lang.String message, java.lang.String meta, boolean noCreate, boolean force)
enqueue(String to, String from, Dictionary data,
boolean noCreate, boolean force)
method instead.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 closedpublic static boolean enqueue(java.lang.String to, java.lang.String from, java.util.Dictionary data, boolean noCreate, boolean force)
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 closedpublic static void destroyQueue(java.lang.String name)
public void tag_dequeue(RewriteContext hr)
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.
public static QueueTemplate.QueueItem dequeue(java.lang.String name, int timelimit)
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 returningpublic void tag_queueinfo(RewriteContext hr)
public static QueueTemplate.Queue getQ(java.lang.String name, boolean create)
public static QueueTemplate.Queue getQ(java.lang.String name)