core/cmd/twhelp/cmd_job.go

49 lines
1.1 KiB
Go

package main
import (
"log/slog"
"github.com/urfave/cli/v2"
)
var (
cmdJob = &cli.Command{
Name: "job",
Usage: "Run various jobs (e.g. data sync)",
Subcommands: []*cli.Command{
{
Name: "sync",
Usage: "Trigger various data syncs",
Subcommands: []*cli.Command{
{
Name: "data",
Usage: "Trigger data sync (servers, players, tribes, villages)",
Flags: concatSlices(dbFlags, rmqFlags),
Action: func(c *cli.Context) error {
logger := loggerFromCtx(c.Context)
watermillLogger := newWatermillLogger(logger)
amqpConn, err := newAMQPConnectionFromFlags(c, watermillLogger)
if err != nil {
return err
}
defer func() {
// watermill has its own logs, so we don't need to add any debug logs here
if closeErr := amqpConn.Close(); closeErr != nil {
logger.Warn("couldn't close amqp connection", slog.Any("error", err))
}
}()
<-amqpConn.Connected()
logger.Info("data sync triggered")
return nil
},
},
},
},
},
}
)