Exemple #1
0
        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());
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
            /// <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);
                    }
                }
            }