Add initial work for backgrounding mailer job

This commit is contained in:
Eli Ribble 2026-04-16 17:15:20 +00:00
parent b6d1bd9ee2
commit 81e057b900
No known key found for this signature in database
4 changed files with 15 additions and 1 deletions

View file

@ -15,6 +15,9 @@ import (
func NewAudioTranscode(ctx context.Context, txn bob.Executor, audio_id int32) error {
return newJob(ctx, txn, enums.JobtypeAudioTranscode, audio_id)
}
func NewComplianceMailer(ctx context.Context, txn bob.Executor, compliance_report_request_id int32) error {
return newJob(ctx, txn, enums.JobtypeComplianceMailerSend, compliance_report_request_id)
}
func NewCSVCommit(ctx context.Context, txn bob.Executor, csv_id int32) error {
return newJob(ctx, txn, enums.JobtypeCSVCommit, csv_id)
}

View file

@ -9,6 +9,7 @@ import (
"github.com/Gleipnir-Technology/bob/dialect/psql/sm"
"github.com/Gleipnir-Technology/nidus-sync/db"
"github.com/Gleipnir-Technology/nidus-sync/db/models"
"github.com/Gleipnir-Technology/nidus-sync/platform/background"
"github.com/Gleipnir-Technology/nidus-sync/platform/types"
"github.com/aarondl/opt/omit"
"github.com/aarondl/opt/omitnull"
@ -85,6 +86,10 @@ func ComplianceRequestMailerCreate(ctx context.Context, user User, site_id int32
if err != nil {
return 0, fmt.Errorf("create compliance report request: %w", err)
}
err = background.NewComplianceMailer(ctx, txn, req.ID)
if err != nil {
return 0, fmt.Errorf("create background compliance mailer job: %w", err)
}
txn.Commit(ctx)
return req.ID, nil
}

View file

@ -19,6 +19,7 @@ import (
"github.com/Gleipnir-Technology/nidus-sync/platform/email"
"github.com/Gleipnir-Technology/nidus-sync/platform/file"
"github.com/Gleipnir-Technology/nidus-sync/platform/geocode"
"github.com/Gleipnir-Technology/nidus-sync/platform/mailer"
"github.com/Gleipnir-Technology/nidus-sync/platform/text"
"github.com/jackc/pgx/v5"
//"github.com/Gleipnir-Technology/nidus-sync/userfile"
@ -108,6 +109,8 @@ func handleJob(ctx context.Context, txn bob.Executor, job *models.Job) error {
switch job.Type {
case enums.JobtypeAudioTranscode:
return processAudioFile(ctx, txn, job.RowID)
case enums.JobtypeComplianceMailerSend:
return mailer.ComplianceSend(ctx, txn, job.RowID)
case enums.JobtypeCSVCommit:
return csv.JobCommit(ctx, txn, job.RowID)
case enums.JobtypeCSVImport: