private async Task <IScheduler> GetScheduler() { //MySql存储 DBConnectionManager.Instance.AddConnectionProvider("default", new DbProvider("MySql", "server=127.0.0.1;user id=root;password=123456;database=quartz")); SimpleInstanceIdGenerator idGenerator = new SimpleInstanceIdGenerator(); var instanceId = await idGenerator.GenerateInstanceId(); var instancename = "SystemScheduler"; var serializer = new JsonObjectSerializer(); serializer.Initialize(); var jobStore = new JobStoreTX { DataSource = "default", TablePrefix = "QRTZ_", InstanceId = instanceId, InstanceName = instancename, DriverDelegateType = typeof(MySQLDelegate).AssemblyQualifiedName, //MySql存储 ObjectSerializer = serializer, Clustered = true }; DirectSchedulerFactory.Instance.CreateScheduler(instancename, instanceId, new DefaultThreadPool(), jobStore); var scheduler = await SchedulerRepository.Instance.Lookup(instancename); await scheduler.Start(); //默认开始调度器 return(scheduler); }
public void Start() { var configFileNames = string.Join(",", Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, ConfigName)); if (string.IsNullOrWhiteSpace(configFileNames)) { return; } var instanceId = new SimpleInstanceIdGenerator().GenerateInstanceId(); var threadPool = new SimpleThreadPool(threadCount: 2, threadPriority: ThreadPriority.Normal) { InstanceName = SchedulerName }; threadPool.Initialize(); var jobStore = new RAMJobStore { InstanceName = SchedulerName, InstanceId = instanceId, }; var jobInitializationPlugin = new ConfigFileProcessorPlugin { FileNames = configFileNames, ScanInterval = QuartzConfigFileScanInterval.DisableScanning }; DirectSchedulerFactory.Instance.CreateScheduler( SchedulerName, instanceId, threadPool, jobStore, new Dictionary <string, ISchedulerPlugin> { { SchedulerName, jobInitializationPlugin } }, TimeSpan.Zero, TimeSpan.Zero); var scheduler = DirectSchedulerFactory.Instance.GetScheduler(SchedulerName); scheduler.JobFactory = _jobFactory; scheduler.Start(); }
public void Start() { var instanceId = new SimpleInstanceIdGenerator().GenerateInstanceId(); var threadPool = new SimpleThreadPool(threadCount: 2, threadPriority: ThreadPriority.Normal) { InstanceName = SchedulerName }; threadPool.Initialize(); var jobstore = new RAMJobStore { InstanceName = SchedulerName, InstanceId = instanceId, }; var baseUri = new Uri(Assembly.GetExecutingAssembly().GetName().EscapedCodeBase); // ReSharper disable once AssignNullToNotNullAttribute var fileName = Path.Combine(Path.GetDirectoryName(baseUri.LocalPath), ConfigName); var jobInitializationPlugin = new ConfigFileProcessorPlugin { FileNames = fileName, ScanInterval = QuartzConfigFileScanInterval.DisableScanning }; DirectSchedulerFactory.Instance.CreateScheduler( SchedulerName, instanceId, threadPool, jobstore, new Dictionary <string, ISchedulerPlugin> { { SchedulerName, jobInitializationPlugin } }, TimeSpan.Zero, TimeSpan.Zero); var scheduler = DirectSchedulerFactory.Instance.GetScheduler(SchedulerName); scheduler.JobFactory = _jobFactory; scheduler.Start(); }
public void SetUp() { generator = new TestInstanceIdGenerator(); }