Skip to content

v0.3.0 - Queue status, drain mode, stack traces and variant replay

Latest

Choose a tag to compare

@gradinarufelix gradinarufelix released this 06 Oct 17:00
d0cc79d

Brings the fixes from the bugfix-combined-fixes branch to main.

Changes

  • Queue status names its source (#4)
    • nodeindexqueue:status labels the counts with the backend's own state names and shows the backend class and table it counted, plus a total.
    • It says that "ready" includes jobs released for a retry.
    • An unreachable queue now prints a readable error instead of a stack trace.
  • Drain mode for the worker (#4)
    • nodeindexqueue:work --exit-when-empty stops about a second after nothing more can be reserved.
    • --limit keeps its meaning, so a supervised daemon still waits for new work.
    • Every exit prints the remaining queue depth.
  • Stack traces for failed jobs (#3)
    • The first failure of a streak is stored through Flow's ThrowableStorage: an exception dump, or a Sentry event when Sentry is installed.
    • Repeated failures of the same streak stay one line each.
  • Variant repairs survive moves and deletions (#2)
    • Runtime indexing and repair jobs capture the fulltext root and the target dimension combinations when they are queued, and replay replaceVariants() against live.
    • The worker clears content repository and Doctrine read caches before each job.
    • The Meilisearch write buffer is flushed after every indexing or removal job.

Upgrading

  • Still requires medienreaktor/meilisearch dev-bugfix/combined-fixes.
  • From v0.2.x: drain the live queue before deploying and restart the workers afterwards. If the queue cannot be drained, flush the index and rebuild it once after the deploy (see README).
  • From dev-bugfix-combined-fixes at 6bb76c0: only #4 is new. Queued jobs are unchanged, so no drain or rebuild is needed.