Table of Contents

Class StoredMailRederivationRun

Namespace
MailFathom.Application.Mail.Maintenance
Assembly
MailFathom.Application.dll

A re-derivation of one scope's stored mail somebody asked for, and how far the jobs carrying it have come.

public sealed record StoredMailRederivationRun : IEquatable<StoredMailRederivationRun>
Inheritance
StoredMailRederivationRun
Implements
Inherited Members

Remarks

Durable because it has to survive the process. The walk spans as many job attempts as the scope needs, so a restart in the middle of one must resume where the passes committed rather than at the beginning of a mailbox — and a request that arrived seconds before a shutdown must still be a request afterwards.

One run per scope, which is what makes a second request an answer rather than a second walk over one mailbox. There is no queue behind it: asking twice for the same thing is asking once, and the reply says the run is already under way. Two scopes are two runs, because an operator refreshing one folder must not be told about another's walk.

The counts accumulate across the whole run rather than describing the last pass, which is the figure an operator asking "how far has it got" wants; the position the next pass resumes from is not here, because that is the walk's own cursor and it exists whether a run asked for it or not.

Every field is either MailFathom's own identity for something, a count, or an instant. Nothing derived from a message belongs in a record an operator reads to find out what their instance is doing.

Properties

EndedAt

Gets when the run reached the end of its scope, or null while it has not.

IsOutstanding

Gets whether the run is still waiting to be carried further.

MissingContentEmailCount

Gets how many stored emails the run stepped over because their raw MIME is no longer stored.

RederivedEmailCount

Gets how many stored emails the run re-read and wrote metadata for.

RequestedAt

Gets when the run was asked for.

RunId

Gets the identity of this run, which the jobs carrying it are keyed by.

Scope

Gets the account, and the one folder of it, whose stored mail the run re-reads.

SegmentCount

Gets how many segments of the run have been enqueued, which is also the key the next one is enqueued under.

UnreadableEmailCount

Gets how many stored emails the run stepped over because no reader could parse their MIME.