using System.Reflection; using Hangfire; using JiShe.CollectBus.Common.Jobs; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; using Volo.Abp.Modularity; namespace JiShe.CollectBus.Application { public class JiSheCollectBusApplicationModule: AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { //var configuration = context.Services.GetConfiguration(); //context.Services.AddJobs(configuration); } public override void OnPostApplicationInitialization(ApplicationInitializationContext context) { var interfaceType = typeof(IBaseJob); var assembly = Assembly.GetExecutingAssembly(); var types = assembly.GetTypes(); foreach (var type in types) { if (type.IsClass && type.GetInterfaces().Contains(interfaceType)) { var instance = context.ServiceProvider.GetService(type); //var instance = services.GetObject(); //var instance = Activator.CreateInstance(type); RecurringJob.AddOrUpdate(type.Name, () => type.GetMethod("Execute").Invoke(instance, null), Cron.Minutely); } } } } }