1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/orionis-coyotes

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
main.go 2.8 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
管宜尧 Отправлено 8 лет назад ca64c01
package main
import (
"flag"
"fmt"
"os"
"github.com/mylxsw/coyotes/config"
"github.com/mylxsw/coyotes/console"
"github.com/mylxsw/coyotes/log"
"github.com/mylxsw/coyotes/pidfile"
"github.com/mylxsw/coyotes/scheduler"
"github.com/mylxsw/coyotes/scheduler/channel"
"github.com/mylxsw/coyotes/signal"
broker "github.com/mylxsw/coyotes/brokers/redis"
server "github.com/mylxsw/coyotes/http"
)
var (
redisAddr string
redisPassword string
redisDB int
redisAddrDepressed string
redisPasswordDepressed string
httpAddr string
pidFile string
concurrent int
taskMode bool
colorfulTTY bool
defaultChannel string
)
func main() {
flag.Usage = func() {
fmt.Println(config.WelcomeMessageStr)
fmt.Print("Options:\n\n")
flag.PrintDefaults()
}
flag.StringVar(&redisAddr, "redis-host", "127.0.0.1:6379", "redis连接地址,必须指定端口")
flag.StringVar(&redisPassword, "redis-password", "", "redis连接密码")
flag.IntVar(&redisDB, "redis-db", 0, "redis默认数据库0-15")
flag.StringVar(&redisAddrDepressed, "host", "127.0.0.1:6379", "redis连接地址,必须指定端口(depressed,使用redis-host)")
flag.StringVar(&redisPasswordDepressed, "password", "", "redis连接密码(depressed,使用redis-password)")
flag.StringVar(&httpAddr, "http-addr", "127.0.0.1:60001", "HTTP监控服务监听地址+端口")
flag.StringVar(&pidFile, "pidfile", "/tmp/coyotes.pid", "pid文件路径")
flag.IntVar(&concurrent, "concurrent", 5, "并发执行线程数")
flag.BoolVar(&taskMode, "task-mode", true, "是否启用任务模式,默认启用,关闭则不会执行消费")
flag.BoolVar(&colorfulTTY, "colorful-tty", false, "是否启用彩色模式的控制台输出")
flag.StringVar(&defaultChannel, "channel-default", "default", "默认channel名称,用于消息队列")
flag.Parse()
runtime := config.InitRuntime(
redisAddr,
redisPassword,
redisAddrDepressed,
redisPasswordDepressed,
pidFile,
concurrent,
redisDB,
httpAddr,
taskMode,
colorfulTTY,
defaultChannel,
)
// 创建进程pid文件
pid, err := pidfile.New(runtime.Config.PidFile)
if err != nil {
log.Error("failed to create pidfile: %v", err)
os.Exit(2)
}
defer pid.Remove()
if runtime.Config.ColorfulTTY {
fmt.Println(console.ColorfulText(console.TextCyan, config.WelcomeMessage()))
}
log.Debug("redis addr: %s/%d", runtime.Config.Redis.Addr, runtime.Config.Redis.DB)
log.Debug("process ID: %d", os.Getpid())
// 初始化所有channel,必须在初始化信号处理之前
channel.InitChannels()
// 信号处理程序,接收退出信号,平滑退出进程
signal.InitSignalReceiver()
go server.StartHTTPServer()
go func() {
broker.TransferPrepareTask()
}()
scheduler.Schedule()
<-runtime.StopHTTPServer
log.Debug("all stoped.")
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/orionis-coyotes.git
git@gitlife.ru:oschina-mirror/orionis-coyotes.git
oschina-mirror
orionis-coyotes
orionis-coyotes
v1.0-beta