WorkQueue Quick Reference

Manage and process work items in sequential queues with SLA tracking

Key Features 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 Queue Item Format { name: "task1", status: "pending", sla_time: 3600000, created: 1705334400000, data: { // Custom item data } } Configuration