Example #1
0
 public JobRepositoryTests()
 {
     sandbox    = new FileSandbox(new EmptyFileLocator());
     repository = JobRepositoryFactory.Create(with =>
     {
         with.Location = sandbox.Directory;
     });
 }
Example #2
0
 /// <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();
     }
 }
Example #3
0
        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));
                }
            }
        }
Example #4
0
        /// <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);
        }
Example #5
0
        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");
            }));
        }