public void Init(ConsoleInfo consoleInfo)
        {
            if (consoleInfo == null)
            {
                throw new ArgumentNullException(nameof(ConsoleInfo));
            }
            ConsoleInfo        = consoleInfo;
            _nextProgressBarId = consoleInfo.ProgressBarId;//初始化

            if (consoleInfo != null && consoleInfo.StartTime == DateTime.MinValue)
            {
                consoleInfo.StartTime = DateTime.UtcNow;
            }
        }
        private IHangfireConsole GetHangfireConsole(HttpContext httpContext, Type jobType, IHangfireStorage storage)
        {
            IHangfireConsole console = null;

            try
            {
                //默认每次都是有一个新的实例
                var consoleFactory = httpContext.RequestServices.GetService <IStorageFactory>();
                console = consoleFactory.CreateHangforeConsole(storage);

                ConsoleInfo consoleInfo  = null;
                var         agentConsole = httpContext.Request.Headers["x-job-agent-console"].ToString();
                if (!string.IsNullOrEmpty(agentConsole))
                {
                    consoleInfo = agentConsole.ToJson <ConsoleInfo>();
                }

                if (console != null && consoleInfo != null)
                {
                    var initConsole = console as IHangfireConsoleInit;
                    if (initConsole == null)
                    {
                        console = null;
                    }
                    else
                    {
                        initConsole.Init(consoleInfo);
                    }
                }
                else
                {
                    console = null;
                }
            }
            catch (Exception)
            {
                //ignore
            }

            if (console == null)
            {
                var jobLogger = _loggerFactory.CreateLogger(jobType);
                console = new LoggerConsole(jobLogger);
            }

            return(console);
        }
Example #3
0
        public void Init(ConsoleInfo consoleInfo)
        {
            if (consoleInfo == null)
            {
                throw new ArgumentNullException(nameof(ConsoleInfo));
            }
            if (string.IsNullOrEmpty(consoleInfo.HashKey) || string.IsNullOrEmpty(consoleInfo.SetKey))
            {
                return;
            }

            ConsoleInfo        = consoleInfo;
            _nextProgressBarId = consoleInfo.ProgressBarId;//初始化

            if (consoleInfo.StartTime == DateTime.MinValue)
            {
                consoleInfo.StartTime = DateTime.UtcNow;
            }
        }