heshaofeng
2025-12-29 266e4bf654c55ce2f7e9271048e4625f1b8b49f6
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
@@ -1,3 +1,7 @@
using System.Net.Security;
using System.Reflection;
using System.Runtime.ConstrainedExecution;
using System.Text;
using Autofac;
using Autofac.Core;
using Autofac.Extensions.DependencyInjection;
@@ -13,10 +17,6 @@
using Quartz.Impl;
using Quartz.Spi;
using Serilog;
using System.Net.Security;
using System.Reflection;
using System.Runtime.ConstrainedExecution;
using System.Text;
using WIDESEA.QuartzJob;
using WIDESEA_Core;
using WIDESEA_Core.Authorization;
@@ -31,7 +31,7 @@
using WIDESEA_WMSServer;
using WIDESEA_WMSServer.Filter;
using WIDESEA_WMSServer.Jobs;
using static Quartz.Logging.OperationName;
using WIDESEAWCS_Core.LogHelper;
var builder = WebApplication.CreateBuilder(args);
@@ -41,6 +41,36 @@
//  .WriteTo.Console()
//  .WriteTo.File("logs/log-.txt", rollingInterval: RollingInterval.Day)
//  .CreateLogger();
AppDomain.CurrentDomain.FirstChanceException += (sender, e) =>
{
    bool flag = e.Exception.TargetSite?.DeclaringType?.Namespace?.StartsWith("WIDESEA") == true;
    if (e.Exception is not OperationCanceledException && flag)
    {
        string folderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Log\\Exception");
        Exception ex = e.Exception;
        StringBuilder builder = new StringBuilder();
        builder.Append("错误信息:");
        builder.Append(ex.Message);
        builder.Append(Environment.NewLine);
        builder.Append("错误源:");
        builder.Append(ex.Source);
        builder.Append(Environment.NewLine);
        builder.Append("错误堆栈:");
        builder.Append(ex.StackTrace);
        builder.Append(Environment.NewLine);
        builder.Append("错误类型:");
        builder.Append(ex.GetType().ToString());
        builder.Append(Environment.NewLine);
        builder.Append("错误方法:");
        builder.Append(ex.TargetSite?.ToString());
        builder.Append(Environment.NewLine);
        builder.Append(Environment.NewLine);
        LoggerHelper.WriteError(e.Exception, folderPath);
    }
};
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Information() // è®¾ç½®å…¨å±€æœ€ä½Žæ—¥å¿—级别为 Information
@@ -158,6 +188,7 @@
});
builder.Services.AddSingleton<IJobFactory, JobFactory>();
builder.Services.AddTransient<AgvTaskJob>();//Job使用瞬时依赖注入
builder.Services.AddTransient<InventoryLockJob>();//Job使用瞬时依赖注入
builder.Services.AddSingleton<ISchedulerCenter, SchedulerCenterServer>();
builder.Services.AddQuartz(q =>
@@ -172,13 +203,13 @@
        .WithIdentity("ErpJob-trigger")
        .WithCronSchedule("0 0 10,14,20 * * ?"));
    var inventoryLockJobKey = new JobKey("InventoryLockJob");
    q.AddJob<InventoryLockJob>(opts => opts.WithIdentity(inventoryLockJobKey));
    //var inventoryLockJobKey = new JobKey("InventoryLockJob");
    //q.AddJob<InventoryLockJob>(opts => opts.WithIdentity(inventoryLockJobKey));
    q.AddTrigger(opts => opts
        .ForJob(inventoryLockJobKey)
        .WithIdentity("InventoryLockJob-trigger")
        .WithCronSchedule("0 0/10 * * * ?")); // æ¯10分钟执行一次
    //q.AddTrigger(opts => opts
    //    .ForJob(inventoryLockJobKey)
    //    .WithIdentity("InventoryLockJob-trigger")
    //    .WithCronSchedule("0 0/10 * * * ?")); // æ¯10分钟执行一次
});
builder.Services.AddQuartzHostedService(q => q.WaitForJobsToComplete = true);