public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseHangfireDashboard("/BackgroundJobs", new DashboardOptions
            {
                DashboardTitle = "Eren Yýlmaz Hangfire Dashboard", //TITLE
                AppPath        = "/weatherforecast"                //BACK TO SITE
            });


            //HANGFIRE SERVER CONFIGURATION
            app.UseHangfireServer(new BackgroundJobServerOptions()
            {
                //5 SANÝYEDE BÝR KONTROL ET
                SchedulePollingInterval = TimeSpan.FromSeconds(5)
            });


            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();


            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            RecurringJobs.DatabaseBackupOperation();
        }
Exemple #2
0
        // C'tor
        public Application(ILogger logger, IConfigurationRoot config)
        {
            _logger = logger;

            _container = AutofacConfig.Configure(_logger);

            GlobalConfiguration.Configuration.UseSqlServerStorage(
                config.GetConnectionString("SeedToolsDataStoreConnection"));
            GlobalConfiguration.Configuration.UseActivator(new AutoFacHangfireJobActivator(_container));

            RecurringJobs.Configure();
        }
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseRouting();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
            //app.UseHangfireDashboard();
            app.UseHangfireDashboard("/ademolgunerhangfire", new DashboardOptions
            {
                DashboardTitle = "Adem Olguner Hangfire DashBoard",                    // Dashboard sayfasına ait Başlık alanını değiştiririz.
                AppPath        = "/Home/HangfireAbout",                                // Dashboard üzerinden "back to site" button
                Authorization  = new[] { new HangfireDashboardAuthorizationFilter() }, // Güvenlik için Authorization İşlemleri
            });
            //app.UseHangfireServer();
            app.UseHangfireServer(new BackgroundJobServerOptions
            {
                /*  Hangfire Server, planlanan işleri sıralarına göre sıralamak için zamanlamayı düzenli olarak denetler ve
                 *  çalışanların bunları yürütmesine olanak tanır.
                 *  Varsayılan olarak, kontrol aralığı 15 saniyeye eşittir, ancak BackgroundJobServer yapıcısına ilettiğiniz seçeneklerde
                 *  SchedulePollingInterval özelliğini ayarlayarak değiştirebilirsiniz    */
                SchedulePollingInterval = TimeSpan.FromSeconds(30),

                //Arkaplanda çalışacak Job sayısını değiştirebiliriz.
                WorkerCount = Environment.ProcessorCount * 5
            });
            GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute {
                Attempts = 7
            });

            // Tanımlanan zaman diliminde sürekli çalıştığı için tetiklenmesine gerek yok,
            // burada tanımlayabiliriz. tanımlayabiliriz.
            RecurringJobs.DatabaseBackupOperation();
        }
Exemple #4
0
        public async Task <ActionResult <RecurringKeyword> > PostRecurringKeyword(RecurringKeyword recurringKeyword)
        {
            if (!UrlHelper.isValidUrl(recurringKeyword.Url) || !UrlHelper.isValidCountryCode(recurringKeyword.CountryDomain))
            {
                return(BadRequest());
            }

            if (!NewRecurringKeywordExistsAlready(recurringKeyword))
            {
                _context.RecurringKeyword.Add(recurringKeyword);
                await _context.SaveChangesAsync();

                RecurringJobs scrappingInstance = new RecurringJobs(_context, options);
                //cron job running every day at 7 am to get the position for the day
                RecurringJob.AddOrUpdate("RecurringKeyword-" + recurringKeyword.RecurringKeyworId,
                                         () => scrappingInstance.GoogleScrappingJob(recurringKeyword.Query, recurringKeyword.Url, recurringKeyword.CountryDomain, recurringKeyword.RecurringKeyworId),
                                         Cron.Daily);

                //create fake data do show on graph
                for (int i = 0; i < 7; i++)
                {
                    Random random = new Random();
                    _context.RecurringKeywordPosition.Add(new RecurringKeywordPosition
                    {
                        RecurringKeyworId = recurringKeyword.RecurringKeyworId,
                        Date      = DateTime.Today.AddDays(-i - 1),
                        Positions = Convert.ToInt32((random.NextDouble() * (10 - 1) + 1)).ToString()
                    });
                }
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetRecurringKeyword", new { id = recurringKeyword.RecurringKeyworId }, recurringKeyword));
            }
            else
            {
                return(Conflict());
            }
        }
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            var hangfireSettings = Configuration.GetSection(nameof(HangfireSettings)).Get <HangfireSettings>();

            //www.mysite.com/hangfire
            app.UseHangfireDashboard("/hangfire", new DashboardOptions
            {
                DashboardTitle = "Cihat SOLAK Hangfire Dashboard", //Dashboard ekranýndaki baþlýk alaný.
                AppPath        = "https://github.com/cihatsolak",  //Dashboard üzerindeki "back to site" butonu,
                Authorization  = new[] { new HangfireCustomBasicAuthenticationFilter {
                                             User = hangfireSettings.UserName,
                                             Pass = hangfireSettings.Password
                                         } } //Güvenlik için authorization iþlemleri
            });

            app.UseHangfireServer(new BackgroundJobServerOptions
            {
                /*
                 * Hangfire server, planlanan iþleri sýralarýna göre sýralamak için zamanlamayý düzenli olarak denetler ve çalýþanlarýn bunlarý yürütmesine olanak tanýr.
                 * Varsayýlan olarak, kontrol aralýðý 15 saniyeye eþittir ancak SchedulePollingInterval özelliðini ayarlayarak deðiþtirebiliriz.
                 */

                SchedulePollingInterval = TimeSpan.FromMinutes(1),        //1 dakikada 1 kez kontrol et ve görevleri sýrala görevleri sýrala.
                WorkerCount             = Environment.ProcessorCount * 5, //Arka planda çalýþacak job sayýsýný ifade eder.
                Queues = new[] { "general" }
            });

            GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute {
                Attempts = 7
            });                                                                         //Global seviyede bir job hata alýrsa 7 kere tekrarlamasýný söyledik.

            //Recurring Jobs
            RecurringJobs.DeleteLogJob();


            app.CustomConfigure();
        }
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ToDoListDbContext db)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            db.Database.EnsureCreated();

            app.UseRouting();

            app.UseOpenApi();
            app.UseSwaggerUi3();

            app.UseHangfireDashboard();
            app.UseHangfireServer();

            RecurringJobs.SendAllTasksDaily();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
 public IActionResult AddImage()
 {
     RecurringJobs.ReportingJob();
     return(View());
 }
        public IActionResult SetJobs()
        {
            RecurringJobs.SessionRequest();

            return(Ok());
        }