Esempio n. 1
0
 public SingletonChannelReceiver(IChannelReceiver channelReceiver, ISingletonLockManager lockManager, ILog log)
 {
     _channelReceiver = channelReceiver;
     _lockManager     = lockManager;
     _log             = log;
     _lockId          = channelReceiver.GetType().FullName;
     //MaxConcurrent and Prefetch must have specific  values to work with a singleton implementation.
     //Override those and let the other values be set from the specific implementation
     Settings = new SingletonProcessingSettings
     {
         MessageLockTimeout      = _channelReceiver.Settings.MessageLockTimeout,
         DeadLetterDeliveryLimit = _channelReceiver.Settings.DeadLetterDeliveryLimit
     };
     _channelReceiver.Settings = Settings;
 }
 public static IHostConfiguration UseSingletonLocks(this IHostConfiguration configuration, ISingletonLockManager lockManager)
 {
     configuration.SingletonLockManager = lockManager;
     return(configuration);
 }
Esempio n. 3
0
        internal void AddJob(Type settingsType, IDependencyInjection dependencyInjection, ILog log, ISingletonLockManager singletonLockManager)
        {
            var jobType     = typeof(JobExecutor <>).MakeGenericType(settingsType);
            var jobExecutor = (IJob)Activator.CreateInstance(jobType, log, singletonLockManager, dependencyInjection);

            _jobs.TryAdd(jobExecutor.GetType(), jobExecutor);
        }
Esempio n. 4
0
 public JobExecutor(ILog logger, ISingletonLockManager lockManager, IDependencyInjection dependencyInjection)
 {
     _logger              = logger;
     _lockManager         = lockManager;
     _dependencyInjection = dependencyInjection;
 }