Queue Service 3.1

Queue Service, BOT Service now leverage the QBO Calendar module to control processing times. Queue Status has been updated to reflect more intuitive status values.

Summary Of Updates

  • Queues and BOTs now utilize Calendar module to control processing times. Queue scheduling has been deprecated.
  • Queue status has been updated to leverage more intuitive statuses
  • Calendar module has been updated to contain more granularity on setting run times.

Calendar Module Updates    

The Calendar module has been extended to allow for additional granularity:
  • Each day of the week can be enabled/disabled along with setting specific run-times. For example, a sample Calendar can be defined as:
    • Monday - Saturday enabled from 12:05 AM - 11:59 PM
    • Sunday can be enabled from 3:00 AM - 11:59 PM (to accommodate maintenance)
  • Calendars will continue to respect registered Holidays and HolidayInstances. Calendars can point to another Calendar's Holidays so that only one set of Holidays require management in each system. Other Holiday updates include:
    • HolidayInstances have been extended to accommodate run times. This allow additional granularity when registering Holidays. For example, a Holiday can be registered on a given day as "all day" or between a set time.
    • Holidays can be dynamically imported using the qbo.Holiday.Import plug-in. From Calendar Summary > Options > Import Holidays and choose which Holiday to import.
    • Holidays and HolidayInstances can also be copied from another Calendar by Calendar Summary > Options > Copy Holidays.
Setup.Queue.Initialize.xml seeds a pre-defined Calendar labeled "Standard Queue Calendar" as an example of realistic Calendar configuration. Note the intent is to show that Queuing can (and should) run with minimal downtime but during the weekends can be configured to respect maintenance windows.

Queue Status Updates    

Queue Statuses have been updated to reflect more intuitive statuses:
  • Enabled - Indicates Queue is enabled and will process from Queue Service when corresponding Calendar is eligible to execute. This replaces status Started.
  • Disabled - Indicates Queue is disabled and will not process from Queue Service. This replaces status Stopped.
  • Running - Indicates Queue is enabled and Calendar is eligible to execute.
  • VirtualDisabled - Indicates virtual Queue is disabled and will not process from BOT Service. This replaces status VirtualStopped.
Note for Queuing 3.1 to function correctly all Queues require a status update. Please see below on upgrade steps.

Steps to Update to Queuing 3.1  

Ensure .NET Framework 4.6.1 or higher is installed on all machines running QBO. You can install here. Note the install will force a machine restart.
  • Build and deploy latest codebase from Trunk. Ensure this includes the qbo.Holiday.Import plug-in.
  • Ensure database is in sync with qbo.DB. Calendar, Holiday, HolidayInstance and all related objects and history tables require an update. 
  • Seed qbo.ApplicationWeb/Config/Setup.QueueInitialize.xml
  • Update Queues to be Queuing 3.1 compliant:
    • Browse to: https://{Site Name}/Application/Queue.ashx/ConvertQueuing310 . This will:
      • Set all processing Queues to use "Standard Queue Calendar". You can override the Calendar by passing ?Calendar={Calendar}
      • Note you must manually set CurrentQueue's calendar to "Standard Queue Calendar"
      • Set Queue Group based on QueueName. This is an aesthetic setting that will organize queues
      • Ensure RetryInterval and ResumeInterval are set to "0" if not set. This fixes most reprocessing bugs
  • At this point, you should be able to pull up https://{Site Name}/Application/Queue.ashx without any errors.
  • Obtain and install Trunk/qbo.3/Installation/qbo.QueueService.3.1.0.x64.msi or qbo.QueueService.3.1.0.x86.msi (x86 version).
    • Backup qbo.QueueService.exe.config before installing new Queue Service.
  • Start Queue Service 3.1. Event Viewer on each application server should be free of errors. Note under a each running Queue > QueueLog > Debug a message should be a message logged:
Queue Calendar 'Standard Queue Calendar' Established. CurrentRunDate: {StartDate}; Can Execute: True until: {EndDate}

BOT Service Updates

qbo.BOT.Service must be updated to version 2.1 to be compatible with Queuing 3.1. The BOT Service relies on the home application Queue.ashx/SearchXml to render ProcessingStatus tag under each Queue entry. Users have the option of:

  • Manually installing /Trunk/qbo.3/Installation/qbo.BotService.2.1.0.x64.msi OR 
  • Using AWS Image QBO BOT 2-1-2 which has BOT Service 2.1 installed