Monitor Asynchronous Actions using Event Handlers

The fetch actions sent to a connector are asynchronous. Asynchronous actions do not run immediately, but are added to a queue. This means that the person or application that sends the action does not receive an immediate response. However, you can configure the connector to call an event handler when an asynchronous action starts, finishes, or encounters an error.

You can use an event handler to:

  • return data about an event back to the application that sent the action.
  • write event data to a text file, to log any errors that occur.

You can also use event handlers to monitor the size of asynchronous action queues. If a queue becomes full this might indicate a problem, or that applications are making requests to IMAP Connector faster than they can be processed.

IMAP Connector can call an event handler for the following events.

OnStart The OnStart event handler is called when IMAP Connector starts processing an asynchronous action.
OnFinish The OnFinish event handler is called when IMAP Connector successfully finishes processing an asynchronous action.
OnError The OnError event handler is called when an asynchronous action fails and cannot continue.
OnErrorReport The OnErrorReport event is called when an asynchronous action encounters an error, but the action continues. This event is not available for every connector.
OnQueueEvent

The OnQueueEvent handler is called when an asynchronous action queue becomes full, becomes empty, or the queue size passes certain thresholds.

  • A QueueFull event occurs when the action queue becomes full.
  • A QueueFilling event occurs when the queue size exceeds a configurable threshold (QueueFillingThreshold) and the last event was a QueueEmpty or QueueEmptying event.
  • A QueueEmptying event occurs when the queue size falls below a configurable threshold (QueueEmptyingThreshold) and the last event was a QueueFull or QueueFilling event.
  • A QueueEmpty event occurs when the action queue becomes empty.

IMAP Connector supports the following types of event handler:

  • The TextFileHandler writes event data to a text file.
  • The HttpHandler sends event data to a URL.
  • The LuaHandler runs a Lua script. The event data is passed into the script.