using System.Collections.Generic; using System.Reflection; using Hangfire; using JiShe.CollectBus.Common.Jobs; using JiShe.CollectBus.MQ.Sender; using MassTransit; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; using Volo.Abp.Modularity; namespace JiShe.CollectBus.Application { [DependsOn(typeof(JiSheCollectBusMqSenderModule))] public class JiSheCollectBusApplicationModule: AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddSingleton(); //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); } } } } }