public JobRepositoryTests() { sandbox = new FileSandbox(new EmptyFileLocator()); repository = JobRepositoryFactory.Create(with => { with.Location = sandbox.Directory; }); }
/// <summary> /// 初始化数据库表 /// </summary> /// <returns></returns> private async Task InitDBTableAsync() { //如果不存在sqlite数据库,则创建 //TODO 其他数据源... if (driverDelegateType.Equals(typeof(SQLiteDelegate).AssemblyQualifiedName) || driverDelegateType.Equals(typeof(MySQLDelegate).AssemblyQualifiedName) || driverDelegateType.Equals(typeof(PostgreSQLDelegate).AssemblyQualifiedName)) { IJobRepository repositorie = JobRepositoryFactory.CreateRepositorie(driverDelegateType, dbProvider); await repositorie?.InitTable(); } }
public static void Main(string[] args) { const string path = @"d:\\tick-tock"; BlobRepository blobs = BlobRepositoryFactory.Create(with => { with.Location = Path.Combine(path, "blobs"); }); JobExecutionRepository executions = JobExecutionRepositoryFactory.Create(with => { with.Location = Path.Combine(path, "executions"); }); JobRepository jobs = JobRepositoryFactory.Create(with => { with.Location = Path.Combine(path, "jobs"); }); JobTaskRepository tasks = JobTaskRepositoryFactory.Create(with => { with.Blobs = blobs; with.Executions = executions; }); JobRunner runner = JobRunnerFactory.Create(with => { with.Executions = executions; with.Jobs = jobs; with.Tasks = tasks; }); Bootstrapper bootstrapper = new Bootstrapper(path); Uri uri = new Uri("http://localhost:1234"); using (var host = new NancyHost(bootstrapper, uri)) { host.Start(); while (true) { runner.Run(); Thread.Sleep(TimeSpan.FromSeconds(10)); } } }
/// <summary> /// 移除异常信息 /// 因为只能在IJob持久化操作JobDataMap,所有这里直接暴力操作数据库。 /// </summary> /// <param name="jobGroup"></param> /// <param name="jobName"></param> /// <returns></returns> public async Task <bool> RemoveErrLog(string jobGroup, string jobName) { IJobRepository logRepositorie = JobRepositoryFactory.CreateRepositorie(driverDelegateType, dbProvider); if (logRepositorie == null) { return(false); } await logRepositorie.RemoveErrLogAsync(jobGroup, jobName); var jobKey = new JobKey(jobName, jobGroup); var jobDetail = await scheduler.GetJobDetail(jobKey); jobDetail.JobDataMap[JobConstant.EXCEPTION] = string.Empty; return(true); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register(BlobRepositoryFactory.Create(with => { with.Location = Path.Combine(location, "blobs"); })); container.Register(JobExecutionRepositoryFactory.Create(with => { with.Location = Path.Combine(location, "executions"); })); container.Register(JobRepositoryFactory.Create(with => { with.Location = Path.Combine(location, "jobs"); })); }