public SomeDomainService( IRepository <Person> personRepository, IRepository <Animal> animalRepository, IUnitOfWorkManager unitOfWorkManager, IDbContextProvider <AnimalDbContext> animalDbContextProvider, IBackgroundJobManager hangfireBackgroundJobManager, IDapperRepository <Person> personDapperRepository, IDapperRepository <Animal> animalDapperRepository, ICacheManager cacheManager, IMessageBus messageBus, IScheduleJobManager hangfireScheduleJobManager, IDapperRepository <Product> productDapperRepository, IDapperRepository <Mail, Guid> mailDapperRepository) { _personRepository = personRepository; _animalRepository = animalRepository; _unitOfWorkManager = unitOfWorkManager; _animalDbContextProvider = animalDbContextProvider; _hangfireBackgroundJobManager = hangfireBackgroundJobManager; _personDapperRepository = personDapperRepository; _animalDapperRepository = animalDapperRepository; _cacheManager = cacheManager; _messageBus = messageBus; _hangfireScheduleJobManager = hangfireScheduleJobManager; _productDapperRepository = productDapperRepository; _mailDapperRepository = mailDapperRepository; Logger = NullLogger.Instance; }
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); }); }
public SchedulerJob( IScheduleJobManager schedulerJobManager, ISiteSocialAccountService siteSocialAccountService ) { _scheduleJobManager = schedulerJobManager; _siteSocialAccountService = siteSocialAccountService; }
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(); }); }
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); }); }
public ValuesController(IScheduleJobManager ScheduleJobManager) { this.ScheduleJobManager = ScheduleJobManager; }