Payer reports: do not report others as frequently #1220
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add distinct payer report generation periods to configure self at 6h and others at 12h and update workers to use these durations
This change introduces separate configuration for payer report generation periods for self and others and updates the worker pipeline to consume these values. It adds two
time.Durationfields toconfig.PayerReportOptions, threads them through server initialization, validates them in the worker config builder, and updates the generator worker to apply the correct interval based on report origin.GenerateReportSelfPeriod(default 6h) andGenerateReportOthersPeriod(default 12h) in options.goworkers.GeneratorWorkerto holdgenerateSelfPeriodandgenerateOthersPeriodand select between them inworkers.GeneratorWorker.isOlderThanReportIntervalin generator.goworkers.WorkerConfigBuilderwithWithGenerationSelfPeriodandWithGenerationOthersPeriod, validate periods > 0 inBuild, and pass them inRunWorkersin runner.go📍Where to Start
Start with the worker configuration flow in
workers.RunWorkersandworkers.WorkerConfigBuilder.Buildto see how periods are validated and injected, then reviewworkers.GeneratorWorker.isOlderThanReportIntervalfor the selection logic in runner.go and generator.go.Macroscope summarized 96ae951.