예제 #1
0
        public void InstallServices(IServiceCollection services, IConfiguration configuration)
        {
            var hangfireSettings = new HangfireSettings();

            configuration.Bind(key: nameof(HangfireSettings), hangfireSettings);
            services.AddSingleton(hangfireSettings);

            services.AddHangfire(options =>
            {
                GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute()
                {
                    Attempts = 0
                });
                options.UseSqlServerStorage(configuration.GetConnectionString("DefaultConnection"));
            });
        }
예제 #2
0
        private static void ConfigFromEnv(HangfireSettings settings)
        {
            var HangfireQueues = GetEnvConfig <string>("HangfireQueues");

            if (!string.IsNullOrEmpty(HangfireQueues))
            {
                settings.JobQueues = HangfireQueues.Split(',').ToList();
            }

            var ServerName = GetEnvConfig <string>("ServerName");

            if (!string.IsNullOrEmpty(ServerName))
            {
                settings.ServerName = ServerName;
            }

            var TablePrefix = GetEnvConfig <string>("TablePrefix");

            if (!string.IsNullOrEmpty(TablePrefix))
            {
                settings.TablePrefix = TablePrefix;
            }

            var WorkerCount = GetEnvConfig <string>("WorkerCount");

            if (!string.IsNullOrEmpty(WorkerCount))
            {
                settings.WorkerCount = int.Parse(WorkerCount);
            }

            var HangfireUserName = GetEnvConfig <string>("HangfireUserName");
            var HangfirePwd      = GetEnvConfig <string>("HangfirePwd");

            if (!string.IsNullOrEmpty(HangfireUserName) && !string.IsNullOrEmpty(HangfirePwd))
            {
                settings.HttpAuthInfo = new HttpAuthInfo {
                    Users = new List <UserInfo>()
                };
                settings.HttpAuthInfo.Users.Add(new UserInfo
                {
                    Login         = HangfireUserName,
                    PasswordClear = HangfirePwd
                });
            }
        }
예제 #3
0
 public OrderSalesBatchJob(HangfireSettings hangfireSettings) => _hangfireSettings = hangfireSettings;