public JobEngine(JobSetting setting, IMcJobExcute <T> worker, IJobProvider provider = null, ILog log = null) { lock (GetType()) { if (!_isInitlize) { provider = provider ?? new JobProvider(); _lockFactory = provider.GetLockFactory(setting.ZkConnectionString, setting.SystemId); _log = log; _queue = provider.GetQueue <T>(setting.QueueConnectionString, setting.QueueName); _worker = worker; _cacheClient = provider.GetCacheClient(setting.RedisConnection, setting.RedisDb); Task.Factory.StartNew(() => { _queue.OnReceive(ExcuteTask); }, TaskCreationOptions.LongRunning).ConfigureAwait(false); _isInitlize = true; } } }
public ZkLock(IDistributeLockFactory factory, bool locked = false) { _factory = factory; Locked = locked; }