Skip to content

Hardening: schedule consistency, Redis atomicity/perf, and timeout correctness

Latest

Choose a tag to compare

@RomainLanz RomainLanz released this 03 Mar 19:30
v0.4.1
1169dd2

Highlights

  • Improved schedule upsert consistency across adapters.
  • Fixed worker timeout edge cases and timeout listener cleanup.
  • Optimized Redis schedule listing and made schedule deletion atomic.
  • Expanded integration test coverage for Redis and Knex behavior.
  • Reduced internal any usage and tightened TypeScript types.

What’s Changed

  • Fixed Redis schedule upsert to clear stale scheduling fields.
  • Renamed schedule creation flow to upsertSchedule, kept createSchedule as deprecated wrapper.
  • Fixed schedule manual trigger queue routing and queue manager re-init behavior via follow-up fixes.
  • Fixed worker timeout listener cleanup to prevent retained abort listeners.
  • Fixed timeout: 0 handling so it behaves as an immediate timeout.
  • Preserved runCount on schedule upsert for adapter parity.
  • Moved queue-isolation assertions from fake-adapter-only tests to shared adapter contract tests.
  • Optimized Redis listSchedules with pipelining (removes N+1 request pattern).
  • Made Redis deleteSchedule atomic using MULTI/EXEC.
  • Added Redis integration test helper for write-stream spying.
  • Added Knex query-spy helper and query-count tests for listSchedules and deleteSchedule (SQLite + PostgreSQL).
  • Refactored internal typing to reduce any usage and improve dispatcher/worker type safety.
  • Added repository GitHub link in package.json.
  • Dependency update and general maintenance changes.