public static void InitDataFast(ClientUser user) { var config = new SysConfig(); var syncManager = new DataSyncManager(); syncManager.ClearUserTables(user.GetProfile().Postfix); InitData(user); System.Threading.Thread.Sleep(120000); var date = DateTime.UtcNow; if (SysConfig.UseStaticDate) { date = new CompetitorDataGenerator(config, user).GetMaxDate(); } BuildReports(config, user.GetProfile(), date); GenerateWordCloud(user.GetProfile()); }
/// <summary> /// Builds the reports. /// </summary> /// <param name="config">The configuration.</param> /// <param name="profile">The profile.</param> /// <param name="date">The date.</param> public static void BuildReports(SysConfig config, ClientUserProfile profile, DateTime date) { var distributedLock = new SqlDistributedLock("BuildReport_" + profile.UserName, SysConfig.DefaultConnStr); using (distributedLock.Acquire()) { var dataGenerator = new CompetitorDataGenerator(config, new ClientUser(profile)); var weeklyGenerator = new WeeklyReportDataGenerator(config, new ClientUser(profile)); dataGenerator.GenerateAndSaveNewsList(date); dataGenerator.GenerateAndSaveTopSentiNews(date); dataGenerator.GenerateAndSaveEvent(date); dataGenerator.GenerateAndSaveMedia(date); dataGenerator.GenerateAndSaveSentiment(date); dataGenerator.GenerateAndSaveMap(date); dataGenerator.GenerateAndSaveAge(date); weeklyGenerator.GenerateAndSaveEvent(date); weeklyGenerator.GenerateAndSaveNewsList(date); weeklyGenerator.GenerateAndSaveWeeklyReport(date); } }
/// <summary> /// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" /> /// fires that is associated with the <see cref="T:Quartz.IJob" />. /// </summary> /// <param name="context">The execution context.</param> /// <remarks>The implementation may wish to set a result object on the /// JobExecutionContext before this method exits. The result itself /// is meaningless to Quartz, but may be informative to /// <see cref="T:Quartz.IJobListener" />s or /// <see cref="T:Quartz.ITriggerListener" />s that are watching the job's /// execution.</remarks> public void Execute(IJobExecutionContext context) { var date = DateTime.UtcNow.AddHours(2); var profiles = ProfileHelper.GetAllProfiles(); var config = new SysConfig(); foreach (var profile in profiles) { try { if (SysConfig.UseStaticDate) { date = new CompetitorDataGenerator(config, new ClientUser(profile)).GetMaxDate(); } BackgroundJob.Enqueue(() => BuildReports(config, profile, date)); } catch (Exception e) { Console.WriteLine(e.Message); } } }