WorkQueue Quick Reference
Manage and process work items in sequential queues with SLA tracking
Key Features
- Create and manage multiple work queues
- Add items to queues
- Process items sequentially
- Track item status (pending, processing, completed, failed)
- SLA time monitoring
- Queue administration interface
- Item metadata and timestamps
- Queue statistics and monitoring
Server-Side Usage:
// Get the WorkQueue API
var WorkQueue = js.getObject("/OpenForum/AddOn/WorkQueue","WorkQueue.sjs");
// Create a queue
WorkQueue.createQueue("myQueue");
// Add item to queue
WorkQueue.addItem("myQueue", {
name: "task1",
data: {key: "value"},
slaTime: 3600000 // 1 hour in milliseconds
});
// Get next item from queue
var item = WorkQueue.getNextItem("myQueue");
// Update item status
WorkQueue.updateStatus("myQueue", "task1", "processing");
// Complete item
WorkQueue.completeItem("myQueue", "task1");
// Fail item
WorkQueue.failItem("myQueue", "task1", "Error message");
// Get queue statistics
var stats = WorkQueue.getQueueStats("myQueue");
// List all queues
var queues = WorkQueue.listQueues();
Client-Side Usage:
// Add item to queue
JSON.post('/OpenForum/AddOn/WorkQueue/Add', null,
'queueName=myQueue&itemName=task1&data=' JSON.stringify(itemData))
.onSuccess(function(result) {
console.log('Item added to queue');
}).go();
// Get next item
JSON.get('/OpenForum/AddOn/WorkQueue/Next', null,
'queueName=myQueue')
.onSuccess(function(item) {
console.log('Next item:', item);
}).go();
// Update item status
JSON.post('/OpenForum/AddOn/WorkQueue/UpdateStatus', null,
'queueName=myQueue&itemName=task1&status=processing')
.onSuccess(function(result) {
console.log('Status updated');
}).go();
// Get queue stats
JSON.get('/OpenForum/AddOn/WorkQueue/Stats', null,
'queueName=myQueue')
.onSuccess(function(stats) {
console.log('Queue count:', stats.count);
}).go();
Item Statuses
- pending - Item waiting to be processed
- processing - Item currently being processed
- completed - Item successfully processed
- failed - Item processing failed
Queue Item Format
{
name: "task1",
status: "pending",
sla_time: 3600000,
created: 1705334400000,
data: {
// Custom item data
}
}
Configuration
- Queue retention policy
- SLA warning thresholds
- Auto-retry failed items
- Queue processing workers