// app/jobs/basejob/basejob.go
package basejob
import "golazy.dev/lazyjobs"
type BaseJob struct {
lazyjobs.BaseJob
}
// app/jobs/send_welcome/sendwelcome.go
package sendwelcome
import (
"context"
"sample_app/app/jobs/basejob"
)
type Job struct {
basejob.BaseJob
UserID string `json:"user_id"`
}
func (*Job) Kind() string { return "mail.send_welcome" }
func (j *Job) Work(ctx context.Context) error {
// Load services from ctx and send the welcome message for j.UserID.
return nil
}
// app/jobs/jobs.go
package jobs
import (
"golazy.dev/lazyjobs"
"sample_app/app/jobs/send_welcome"
)
func DefinedJobs(runner *lazyjobs.JobRunner) {
runner.MustRegister(&sendwelcome.Job{})
}
// init/app.go
package appinit
import (
"golazy.dev/lazyapp"
"golazy.dev/lazyjobs"
"sample_app/app"
"sample_app/app/jobs"
)
func App() *lazyapp.App {
return lazyapp.New(lazyapp.Config{
Name: "sample_app",
Drawer: Draw,
Public: app.Public,
Views: app.Views,
Dependencies: Dependencies,
Jobs: lazyapp.Jobs(lazyjobs.Config{
Define: jobs.DefinedJobs,
Workers: 2,
}),
})
}