114 lines
3.6 KiB
Go
114 lines
3.6 KiB
Go
package main
|
|
|
|
import (
|
|
"assets/consts/public"
|
|
assetController "assets/controller/asset"
|
|
enumController "assets/controller/enum"
|
|
procurementController "assets/controller/procurement"
|
|
stockController "assets/controller/stock"
|
|
syncController "assets/controller/sync"
|
|
stockService "assets/service/stock"
|
|
"context"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
_ "gitea.com/red-future/common/config"
|
|
|
|
"gitea.com/red-future/common/http"
|
|
"gitea.com/red-future/common/jaeger"
|
|
_ "gitea.com/red-future/common/swagger"
|
|
gmq "github.com/bjang03/gmq/core/gmq"
|
|
"github.com/bjang03/gmq/mq"
|
|
"github.com/bjang03/gmq/types"
|
|
_ "github.com/gogf/gf/contrib/drivers/pgsql/v2"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
func main() {
|
|
ctx := context.Background()
|
|
defer jaeger.ShutDown(ctx)
|
|
// 注册路由
|
|
//http.Httpserver.BindMiddleware("/*", http.SkipMiddleware(middleware.ModuleTenantCheck, "/*"))
|
|
http.RouteRegister([]interface{}{
|
|
assetController.Asset,
|
|
assetController.AssetSku,
|
|
assetController.Category,
|
|
assetController.PrivateSku,
|
|
assetController.PrivateCategory,
|
|
enumController.Enum,
|
|
stockController.StockManage,
|
|
stockController.StockDetails,
|
|
stockController.StockBatch,
|
|
stockController.PrivateStock,
|
|
stockController.InventoryCount,
|
|
stockController.InventoryCountDetail,
|
|
stockController.InventoryWarning,
|
|
stockController.InventoryWarningHistory,
|
|
stockController.Location,
|
|
stockController.Warehouse,
|
|
stockController.Zone,
|
|
stockController.UnitConversion,
|
|
procurementController.Supplier,
|
|
procurementController.PurchaseOrder,
|
|
procurementController.PurchaseOrderItem,
|
|
syncController.Sync,
|
|
})
|
|
// 注册RPC服务
|
|
//if err := message.AutoRegisterServices(ctx, map[string]interface{}{
|
|
// "assetSkuService": assetService.AssetSku,
|
|
//}); err != nil {
|
|
// g.Log().Warningf(ctx, "RPC 服务注册失败,服务将无法通过 NATS 调用: %v", err)
|
|
//} else {
|
|
// g.Log().Info(ctx, "RPC 服务注册成功")
|
|
//}
|
|
// 注册消息队列消费者
|
|
//msgPlugin, err := message.GetMsgPlugin(context.TODO(), message.MessageNATS)
|
|
//if err != nil {
|
|
// g.Log().Warningf(ctx, "消息队列插件获取失败,服务将无法消费消息: %v", err)
|
|
//} else {
|
|
// msgPlugin.Subscribe(ctx, &message.NatsSubscribeMsgConfig{
|
|
// QueueName: public.StockDetailGroupName,
|
|
// Durable: true,
|
|
// DelayTime: 10,
|
|
// ConsumerName: public.StockDetailConsumerName,
|
|
// AutoAck: public.StockDetailAutoAck,
|
|
// PrefetchCount: public.StockDetailPrefetchCount,
|
|
// HandleFunc: stockService.StockManage.AddStock,
|
|
// })
|
|
//}
|
|
|
|
//plugin, err := message.GetMsgPlugin(message.MessageRedis)
|
|
//if err != nil {
|
|
// g.Log().Warningf(ctx, "消息队列插件获取失败,服务将无法消费消息: %v", err)
|
|
//} else {
|
|
// plugin.Subscribe(ctx, &message.RedisSubscribeMsgConfig{
|
|
// QueueName: public.StockDetailQueueName,
|
|
// ConsumerName: public.StockDetailConsumerName,
|
|
// PrefetchCount: public.StockDetailPrefetchCount,
|
|
// AutoAck: public.StockDetailAutoAck,
|
|
// HandleFunc: stockService.StockManage.AddStock,
|
|
// })
|
|
//}
|
|
|
|
gmq.Init("config.yml")
|
|
err := gmq.GetGmq("primary").GmqSubscribe(ctx, &mq.RedisSubMessage{
|
|
SubMessage: types.SubMessage{
|
|
Topic: public.StockDetailQueueName,
|
|
ConsumerName: public.StockDetailConsumerName,
|
|
AutoAck: public.StockDetailAutoAck,
|
|
FetchCount: public.StockDetailPrefetchCount,
|
|
HandleFunc: stockService.StockManage.AddStock,
|
|
},
|
|
})
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
// 监听退出信号
|
|
quit := make(chan os.Signal, 1)
|
|
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
|
<-quit
|
|
g.Log().Info(ctx, "收到退出信号,正在关闭服务...")
|
|
}
|