|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 |
|
5 | | -- Leave a one-shot reminder that already fired out of `reminder` and |
6 | | - `reminders`. Its row stays as `completed`, so a next-run lookup reported an |
7 | | - old time rather than nothing, and an existence check refused to re-arm an |
8 | | - alarm that could never fire again. |
9 | | -- Refuse an unknown operation in `reminder`, `reminders`, `unschedule`, and |
10 | | - `unschedule_all`. `schedule` |
11 | | - already raised `UnknownMessage` for one, so a typo cancelled nothing quietly |
12 | | - and left a recurring reminder running. |
| 5 | +- Read the durable row rather than the query cache in `MessageReference#status`, |
| 6 | + `MessageReference#result`, and an actor snapshot. A caller that polls holds one |
| 7 | + query cache for the whole poll, and the worker that finishes the message is |
| 8 | + another process, so its write cannot clear that cache. A poll inside a request, |
| 9 | + a job, or `rails runner` reported the first answer forever. The synchronous |
| 10 | + wait already read uncached. |
13 | 11 | - Add reminder cancellation. `unschedule` removes one reminder by operation and |
14 | 12 | optional key, or by the handle `schedule` now returns. `unschedule_all` |
15 | 13 | removes every key of one operation. Both stage an intent, so a cancel commits |
|
20 | 18 | actor reads its own schedule from every path, including activation hooks and |
21 | 19 | observables, because it carries its instance rather than reading an ambient |
22 | 20 | context that only message dispatch establishes. |
| 21 | +- Leave a one-shot reminder that already fired out of `reminder` and |
| 22 | + `reminders`. Its row stays as `completed`, so a next-run lookup reported an |
| 23 | + old time rather than nothing, and an existence check refused to re-arm an |
| 24 | + alarm that could never fire again. |
| 25 | +- Refuse an unknown operation in `reminder`, `reminders`, `unschedule`, and |
| 26 | + `unschedule_all`. `schedule` already raised `UnknownMessage` for one, so a |
| 27 | + typo cancelled nothing quietly and left a recurring reminder running. |
23 | 28 | - A cancel cannot recall an occurrence the scheduler already turned into a |
24 | 29 | message. It does pre-empt one the scheduler claimed but has not yet enqueued. |
25 | 30 | - `schedule` now returns a reminder handle instead of `nil`. An operation that |
|
0 commit comments