Anvil.Workers.AgreementRecompute (Anvil v0.1.1)
View SourceBackground job worker that recomputes agreement metrics for labeled samples.
This worker can be scheduled to run periodically (nightly at 2 AM) or triggered on-demand for specific queues. It processes samples in batches to compute inter-rater agreement scores when multiple labelers have labeled the same sample.
Configuration
Queue: :agreement
Max Attempts: 5
Priority: 2 (medium priority)
Scheduled Execution
Configured in config.exs via Oban.Plugins.Cron:
{"0 2 * * *", Anvil.Workers.AgreementRecompute}Job Arguments
queue_id(optional) - If provided, only recomputes agreement for samples in this queuebatch_size(optional) - Number of samples to process per batch (default: 100)
Telemetry
Emits the following telemetry events:
[:anvil, :workers, :agreement_recompute, :started]- Job execution started[:anvil, :workers, :agreement_recompute, :batch_processed]- Batch completed[:anvil, :workers, :agreement_recompute, :completed]- Job completed successfully
Summary
Functions
Enqueues an agreement recomputation job for a specific queue.
Functions
@spec enqueue( String.t(), keyword() ) :: {:ok, Oban.Job.t()} | {:error, term()}
Enqueues an agreement recomputation job for a specific queue.
Uses uniqueness constraints to prevent duplicate jobs for the same queue within a 24-hour period.
Options
:batch_size- Number of samples per batch (default: 100):unique_period- Uniqueness window in milliseconds (default: 24 hours)