Skip to content

Unexpected behavior with until_executed #250

@mwpastore

Description

@mwpastore

I have some long-running (infinite loop) jobs that are :unique=>:until_executed. The README says, "By default the lock doesn't expire at all," and it specifically calls out only :while_executing and :until_and_while_executing (i.e. not :until_executed) as locking modes. However, when I start this job, I notice that its uniquejobs:{digest} key takes a TTL of 1800. After 1,800 seconds, if a process attempts to queue one of these jobs (while the original instance is still running), it will launch a duplicate job. I tried adding :lock_expiration=>nil to address this issue, but the behavior persists.

  • Am I using the correct mode for this type of job? Is there a more appropriate type?
  • Does this mode take the default_queue_lock_expiration by design, or is that a bug (i.e. it should be nil)?
  • Is there another way to force a non-expiring uniquejobs:{digest} key, or is that a bug (i.e. it should be settable to nil)?

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions