Hi!
I am using the example SortWorker job with small adjustments to test longer-running jobs with cancellation but it does not seem to work.
const SortJobKind = "sort"
type SortArgs struct {
Strings []string `json:"strings"`
}
func (SortArgs) Kind() string {
return SortJobKind
}
type SortWorker struct {
river.WorkerDefaults[SortArgs]
}
func (w *SortWorker) Work(ctx context.Context, job *river.Job[SortArgs]) error {
log.Printf("STARTING: %d", job.ID)
select {
case <-ctx.Done():
log.Printf("CANCELLED: %d", job.ID)
return ctx.Err()
case <-time.After(20 * time.Second):
log.Printf("WILL DO: %d", job.ID)
}
items := job.Args.Strings
sort.Strings(items)
log.Printf("RESULT: %+v\n", items)
return nil
}
When the job appears in the User Interface (riverui), I click Cancel but the job keeps running. In the logs I eventually get from STARTING to WILL DO but never observe CANCELLED.
The only thing that indicates some attempt at cancellation is the metadata field on the job which states:
{
"cancel_attempted_at": "2024-10-02T....."
}
Am I doing something wrong or is there a potential bug?
I am running v0.12.1 and using riverdatabasesql.New, though the underlying connection is pgx, wrapped with opencensus tracing (ocsql).
Hi!
I am using the example
SortWorkerjob with small adjustments to test longer-running jobs with cancellation but it does not seem to work.When the job appears in the User Interface (riverui), I click
Cancelbut the job keeps running. In the logs I eventually get fromSTARTINGtoWILL DObut never observeCANCELLED.The only thing that indicates some attempt at cancellation is the metadata field on the job which states:
{ "cancel_attempted_at": "2024-10-02T....." }Am I doing something wrong or is there a potential bug?
I am running
v0.12.1and usingriverdatabasesql.New, though the underlying connection ispgx, wrapped with opencensus tracing (ocsql).