예제 #1
0
        public void Schedule <TJob>(IScheduleJobManager scheduleJobManager, int siteId, Action <TriggerBuilder> configureTrigger) where TJob : JobBase
        {
            string groupName = GetJobGroup <TJob>();
            string jobKey    = GetJobKey <TJob>(siteId);
            bool   isRunning = IsRunning <TJob>(siteId);

            if (!isRunning)
            {
                scheduleJobManager.ScheduleAsync <TJob, int>(
                    job =>
                {
                    job.WithIdentity(jobKey, groupName);
                },
                    configureTrigger,
                    siteId
                    );
            }

            var runningJob = new RunningJob
            {
                JobKey           = jobKey,
                JobGroup         = groupName,
                SiteId           = siteId,
                LastScheduleTime = DateTime.UtcNow
            };

            _runningJobCache.AddOrUpdate(jobKey, runningJob, (k, job) => { return(runningJob); });
        }
예제 #2
0
        public SchedulerBootstrap()
        {
            var dependencyResolver = new DependencyResolver();

            dependencyResolver.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
            new ApplicationServicesRegistrar(dependencyResolver).RegisterServices();

            _scheduleJobManager = dependencyResolver.Resolve <IScheduleJobManager>();

            _scheduleJobManager.ScheduleAsync <SchedulerJob>(
                job =>
            {
                job.WithIdentity("ScheduleJobKey");
            },
                trigger =>
            {
                trigger.WithSimpleSchedule(x => x.WithIntervalInMinutes(1).RepeatForever().WithMisfireHandlingInstructionIgnoreMisfires())
                .Build();
            });
        }
예제 #3
0
        public void Schedule <TJob>(IScheduleJobManager scheduleJobManager, SiteSocialAccount account, Action <TriggerBuilder> configureTrigger) where TJob : JobBase
        {
            string originalAccountId = !string.IsNullOrWhiteSpace(account.FacebookPageId) ? account.FacebookPageId : account.TwitterUserId;

            if (string.IsNullOrWhiteSpace(originalAccountId))
            {
                return;
            }

            string groupName = GetJobGroup <TJob>();
            string jobKey    = GetJobKey <TJob>(account.SiteId, originalAccountId);
            bool   isRunning = IsRunning <TJob>(account.SiteId, originalAccountId);

            if (!isRunning)
            {
                scheduleJobManager.ScheduleAsync <TJob, SiteSocialAccount>(
                    job =>
                {
                    job.WithIdentity(jobKey, groupName);
                },
                    configureTrigger,
                    account
                    );
            }

            var runningJob = new RunningJob
            {
                JobKey            = jobKey,
                JobGroup          = groupName,
                SiteId            = account.SiteId,
                OriginalAccountId = originalAccountId,
                LastScheduleTime  = DateTime.UtcNow
            };

            _runningJobCache.AddOrUpdate(jobKey, runningJob, (k, job) => { return(runningJob); });
        }
예제 #4
0
        public void DoSomeStuff()
        {
            using (IUnitOfWorkCompleteHandle uow = _unitOfWorkManager.Begin())
            {
                Logger.Debug("Uow Began!");

                _personRepository.Insert(new Person("Oğuzhan"));
                _personRepository.Insert(new Person("Ekmek"));

                _animalRepository.Insert(new Animal("Kuş"));
                _animalRepository.Insert(new Animal("Kedi"));

                _animalDbContextProvider.GetDbContext().Animals.Add(new Animal("Kelebek"));

                _unitOfWorkManager.Current.SaveChanges();

                Person personCache = _cacheManager.GetCache(DemoCacheName.Demo).Get("person", () => _personRepository.FirstOrDefault(x => x.Name == "Oğuzhan"));

                Person person = _personRepository.FirstOrDefault(x => x.Name == "Oğuzhan");
                Animal animal = _animalRepository.FirstOrDefault(x => x.Name == "Kuş");

                #region DAPPER

                var list = new List <string>
                {
                    "elma", "armut"
                };

                ExpressionStarter <Animal> predicate = PredicateBuilder.New <Animal>();
                predicate.And(x => x.Name == "Kuş");

                IEnumerable <Animal> birdsSet = _animalDapperRepository.GetSet(new { Name = "Kuş" }, 0, 10, "Id");

                IEnumerable <Person> personFromDapper = _personDapperRepository.GetList(new { Name = "Oğuzhan" });

                IEnumerable <Animal> birdsFromExpression = _animalDapperRepository.GetSet(predicate, 0, 10, "Id");

                IEnumerable <Animal> birdsPagedFromExpression = _animalDapperRepository.GetListPaged(x => x.Name == "Kuş", 0, 10, "Name");

                IEnumerable <Person> personFromDapperExpression = _personDapperRepository.GetList(x => x.Name.Contains("Oğuzhan"));

                int birdCount = _animalDapperRepository.Count(x => x.Name == "Kuş");

                var personAnimal = _animalDapperRepository.Query <PersonAnimal>("select Name as PersonName,'Zürafa' as AnimalName from Person with(nolock) where name=@name", new { name = "Oğuzhan" })
                                   .MapTo <List <PersonAnimalDto> >();

                birdsFromExpression.ToList();
                birdsPagedFromExpression.ToList();
                birdsSet.ToList();

                IEnumerable <Person> person2FromDapper = _personDapperRepository.Query("select * from Person with(nolock) where name =@name", new { name = "Oğuzhan" });

                _personDapperRepository.Insert(new Person("oğuzhan2"));
                int    id      = _personDapperRepository.InsertAndGetId(new Person("oğuzhan3"));
                Person person3 = _personDapperRepository.Get(id);
                person3.Name = "oğuzhan4";
                _personDapperRepository.Update(person3);
                _personDapperRepository.Delete(person3);

                #endregion

                Person person2Cache = _cacheManager.GetCache(DemoCacheName.Demo).Get("person", () => _personRepository.FirstOrDefault(x => x.Name == "Oğuzhan"));

                Person oguzhan = _personRepository.Nolocking(persons => persons.FirstOrDefault(x => x.Name == "Oğuzhan"));

                Person oguzhan2 = _personRepository.FirstOrDefault(x => x.Name == "Oğuzhan");

                uow.Complete();

                _messageBus.Publish <IPersonAddedMessage>(new PersonAddedMessage
                {
                    Name          = "Oğuzhan",
                    CorrelationId = NewId.NextGuid()
                });

                //_hangfireBackgroundJobManager.EnqueueAsync<SimpleBackgroundJob, SimpleBackgroundJobArgs>(new SimpleBackgroundJobArgs
                //{
                //    Message = "Oğuzhan"
                //});

                _hangfireScheduleJobManager.ScheduleAsync <SimpleBackgroundJob, SimpleBackgroundJobArgs>(new SimpleBackgroundJobArgs
                {
                    Message = "Oğuzhan"
                }, Cron.Minutely());

                Logger.Debug("Uow End!");
            }
        }