Workers for LabVIEW
HomeDownload Follow ProjectAbout
  • Welcome to Workers for LabVIEW
  • What's New in v5.0
    • Upgrading to v5.0
    • New Features
      • Development Tools
      • Functional Changes
      • API Changes
      • Example Projects
      • Change Log
  • Fundamental Concepts
    • What is a Worker?
    • Important Terms
    • The Workers Main VI
      • Default Framework Cases
    • subWorker Types
    • Initialization Sequence
    • Shutdown Sequence
    • Priority Queue
    • Launcher VIs
  • Worker APIs
    • Overview
    • Local Requests
      • Creating Local Requests
    • Public Requests
      • Creating Public Requests
    • Public Requests w/Reply
      • Creating Public Requests w/Reply
    • Public Responses
      • Creating Public Responses
      • Registering Public Responses
    • Case Labels
    • Deleting API Items
  • Workers Tools
    • Workers Tools Menu
      • Create/Add Worker
        • Removing Workers
        • Creating Worker Templates
        • Troubleshooting
      • Workers Debug Server
        • Workers Application Manager
          • Right click menu
        • Worker Message Logs
          • Right click menu
        • Settings
        • Troubleshooting
      • Worker Call-Chain Viewer
      • Worker User Library
        • Config File Editor
      • RT Worker Convert
      • Public API Builder
        • Public Requests
        • Public Requests w/Reply
        • Public Responses
        • Override MHL Cases
      • Create Launcher VI
      • Create Worker Base Class
      • Change Inheritance
      • MHL Case Viewer
      • Change Worker Properties
    • Quickdrop Shortcuts
      • Show Private Data (Ctrl+0)
      • Create MHL Case tool (Ctrl+9)
      • Go To MHL Case (Ctrl+8)
  • Getting Started
    • Creating your first application
    • Example Projects
  • Legal
    • Disclaimer
    • Licenses
Powered by GitBook
On this page
  1. Fundamental Concepts

Priority Queue

Workers Fundamental Concepts

PreviousShutdown SequenceNextLauncher VIs

Last updated 7 months ago

Messages are sent between Worker MHL cases via priority message queues. Unlike standard LabVIEW FIFO queues and events, the Workers message queue allows you to assign priorities to your messages, giving you more control over which messages should be processed first ahead of less important messages, helping to make your applications more deterministic and responsive.

Workers uses the same priority queue used by the LabVIEW Actor Framework, so the performance and features of the queue are the same as that of the Actor Framework.

Each Worker is assigned a message queue by its Caller when the Worker is created. (Head Workers have their message queue assigned by the Setup Head Worker.vi in the Worker's Launcher VI.) Messages are dequeued by the Dequeue Message.vi at the beginning of a Worker's MHL.

Messages in the Workers message queue can be set to one of four possible priorities.

Priority
Availability

Critical

Internal (framework reserved)

High

Developer (Worker API)

Normal

Developer (Worker API)

Low

Developer (Worker API)

The initialization and shutdown sequences of a Workers application are sent critical priority messages internally within the framework, so that a Workers initialization and shutdown sequence will be propagated through a Worker's call-chain immediately.

Through use of the Worker APIs VIs, developers can set their messages to either High, Normal (default) or Low, depending on the message requirements.

Good to know:

The priority queue dequeues messages in the same order they are enqueued, for any given priority, avoiding the reverse ordering of dequeued messages that can potentially occur when enqueuing elements (high priority) at the opposite end of a standard FIFO queue.