示例#1
0
 public ExecutorRegistryProcessor(ILogger <ExecutorRegistryProcessor> logger,
                                  CoreJobClientOptions options,
                                  ICoreJobExecutor xxlJobExecutor)
 {
     _logger         = logger;
     _options        = options;
     _xxlJobExecutor = xxlJobExecutor;
 }
 public CoreJobExecutor(CoreJobClientOptions options,
                        IRestClient httpClient,
                        ILogger <CoreJobExecutor> logger)
 {
     _options    = options;
     _httpClient = httpClient;
     _logger     = logger;
 }
 public CoreJobClientMiddleware(CoreJobClientOptions options,
                                ClientRouteTable routeTable,
                                RequestHandler requestHandler,
                                RequestDelegate next)
 {
     _options        = options;
     _routeTable     = routeTable;
     _next           = next;
     _requestHandler = requestHandler;
 }
示例#4
0
 public CoreJobSender(ICoreJobServicesProvider <ICoreJobExecutorHandler> handlerProvider,
                      ILogger <CoreJobSender> logger,
                      ICoreJobExecutor adminExecutor,
                      CoreJobClientOptions options)
 {
     _handlerProvider = handlerProvider;
     _logger          = logger;
     _adminExecutor   = adminExecutor;
     _options         = options;
 }
示例#5
0
 public CoreJobQueue(ILogger <CoreJobQueue> logger,
                     IJobSender sender,
                     CoreJobClientOptions options,
                     IServiceProvider serviceProvider)
 {
     _logger          = logger;
     _sender          = sender;
     _options         = options;
     _serviceProvider = serviceProvider;
     _jobs            = new Queue <JobMessage>();
 }
示例#6
0
        public static IServiceCollection AddCoreJobClient(this IServiceCollection services, IConfiguration configuration, Action <CoreJobClientOptions> action = null)
        {
            // options
            var options = new CoreJobClientOptions();

            action?.Invoke(options);
            services.AddOptionConfiguration(configuration, options);
            services.AddSingleton(options);

            // http
            services.AddHttpContextAccessor();

            // services
            services.AddSingleton <ICoreJobExecutor, CoreJobExecutor>();
            services.AddSingleton <IProcessor, ExecutorRegistryProcessor>();
            services.AddTransient <IRestClient>(p =>
            {
                var conf   = p.GetRequiredService <CoreJobClientOptions>();
                var client = new RestClient(conf.AdminUrl);
                client.RemoteCertificateValidationCallback =
                    (sender, certificate, chain, sslPolicyErrors) => true;
                return(client);
            });
            services.AddSingleton <IJobDispatcher, JobDispatcher>();
            services.AddSingleton <IJobSender, CoreJobSender>();
            services.AddTransient <CoreJobQueue>();
            services.AddSingleton <IJobLoggerStore, LiteDBLoggerStore>();

            // route table
            services.AddRouteTable(new ClientRouteTable());

            // host service
            services.AddHostedService <CoreJobBackgroundService>();

            // job handler
            services.AddSingleton(typeof(ICoreJobServicesProvider <>), typeof(CoreJobServicesProvider <>));
            services.ScanDynamicJobExecutorHandler(options.HandlerServiceLifetime);

            return(services);
        }