Files
scheduler-backend/cmd/tools/seed-sample-job/main.go
2026-05-28 00:16:19 +08:00

66 lines
1.3 KiB
Go

package main
import (
"context"
"fmt"
"os"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
storemongo "scheduler-backend/internal/store/mongo"
"scheduler-backend/pkg/config"
"scheduler-backend/pkg/log"
)
func main() {
cfg := config.Load()
logger := log.New()
databases, err := storemongo.Connect(context.Background(), cfg)
if err != nil {
logger.Error("seed sample job mongo connect failed", "error", err)
os.Exit(1)
}
defer func() {
_ = databases.Client.Disconnect(context.Background())
}()
now := time.Now()
doc := bson.M{
"name": "sample-job",
"handlerKey": "sample-handler",
"enabled": false,
"scheduleType": "manual",
"scheduleValue": "",
"defaultParams": `{"limit":10,"dryRun":true}`,
"lastStatus": "idle",
"updatedAt": now,
}
result, err := databases.MetaDB.Collection("job_configs").UpdateOne(
context.Background(),
bson.M{"name": "sample-job"},
bson.M{
"$set": doc,
"$setOnInsert": bson.M{"createdAt": now},
},
options.Update().SetUpsert(true),
)
if err != nil {
logger.Error("seed sample job failed", "error", err)
os.Exit(1)
}
logger.Info(
"seed sample job completed",
"matched",
result.MatchedCount,
"modified",
result.ModifiedCount,
"upserted",
fmt.Sprintf("%v", result.UpsertedID),
)
}