Messenger
Abstraction for the message broker used in MessagingManager
It requires
Queues: for queued jobs.
PubSub: for immediate jobs.
Inheritors
Properties
Functions
Cleans any reserved jobs from reserved queue
Names of the statuses required
Deletes job of jobName from graderReservedQueue
Retrieve the set of all submission ids under assignmentConfigId that are still undergoing decompression
Gets next job from graderQueue
Common logging for failing to connect to the messenger
Runs block, retrying every period set by waitUntilReconnect until the operation succeeds.
Always run block, and executes resetBlock when an exception occurs.
Generate the status string for the grading-in-progress state
Push jobs as jobMessage to queueName for external system components to consume
Blocking queue to consume incoming jobs on Messenger.graderQueue
Update the status string of submissionId under assignmentConfigId to status if it is not-null, or delete the key submissionId to nil
if status is null, to indicate this submission is no longer active
Blocking subscribe to Job.subscriptions channels on Redis