@@ -144,22 +144,26 @@ stateDiagram-v2
144144 none --> pending : refresh()
145145 none --> ignore : ignore()
146146 pending --> reserved : reserve()
147- reserved --> none : complete()\n[if not keeping completed]
148- reserved --> success : complete()\n[if keeping completed]
147+ reserved --> none : complete()
148+ reserved --> success : complete()*
149149 reserved --> error : error()
150- success --> pending : refresh()\n[if key in key_source]
150+ success --> pending : refresh()*
151151 error --> none : delete()
152152 success --> none : delete()
153153 ignore --> none : delete()
154154```
155155
156+ - ` complete() ` deletes the job entry (default when ` jobs.keep_completed=False ` )
157+ - ` complete()* ` keeps the job as ` success ` (when ` jobs.keep_completed=True ` )
158+ - ` refresh()* ` re-pends a ` success ` job if its key is in ` key_source ` but not in target
159+
156160** Transition methods:**
157161- ` refresh() ` — Adds new jobs as ` pending ` ; also re-pends ` success ` jobs if key is in ` key_source ` but not in target
158162- ` ignore() ` — Marks a key as ` ignore ` (can be called on keys not yet in jobs table)
159163- ` reserve() ` — Marks a pending job as ` reserved ` before calling ` make() `
160164- ` complete() ` — Marks reserved job as ` success ` , or deletes it (based on ` jobs.keep_completed ` setting)
161165- ` error() ` — Marks reserved job as ` error ` with message and stack trace
162- - ` delete() ` — Removes job entry, returning it to ` (none) ` state
166+ - ` delete() ` — Removes job entries without confirmation (low-cost operation)
163167
164168** Manual status control:**
165169- ` ignore ` is set manually via ` jobs.ignore(key) ` and is not part of automatic transitions
@@ -247,31 +251,21 @@ class JobsTable(Table):
247251
248252 def delete (self , * restrictions ) -> int :
249253 """
250- Delete jobs matching restrictions.
254+ Delete jobs matching restrictions. No confirmation required.
251255
252256 Deleted jobs return to (none) state. Call refresh() to re-add
253257 them as pending if their keys are still in key_source.
254258
255- This is the standard way to "reset" error or ignored jobs.
259+ Examples:
260+ jobs.errors.delete() # Delete all error jobs
261+ (jobs & 'status="success"').delete() # Delete completed jobs
262+ (jobs & 'subject_id=42').delete() # Delete jobs for specific key
256263
257264 Returns:
258265 Number of jobs deleted.
259266 """
260267 ...
261268
262- def clear_completed (self , * restrictions , before : datetime = None ) -> int :
263- """
264- Remove completed jobs from the queue.
265-
266- Args:
267- restrictions: Conditions to filter which jobs to clear
268- before: Only clear jobs completed before this time
269-
270- Returns:
271- Number of jobs cleared.
272- """
273- ...
274-
275269 @ property
276270 def pending (self ) -> QueryExpression:
277271 """ Return query for pending jobs."""
0 commit comments