コード例 #1
0
        private void AddJob(IJobTask task)
        {
            var qParams = new QueueParams(task.Tag.NoHashTag, hangfireSettings.Value.ServerName);

            task = new TwitterJobTask(task.Tag, qParams, settings.Value.TwitterMessagePublishDelay);
            jobManager.AddJob(task);
        }
コード例 #2
0
        public ICommandResult DeleteJob(string tag)
        {
            var qParams = new QueueParams(tag, hangfireSettings.Value.ServerName);
            var task    = new TwitterJobTask(new HashTagWord(tag), qParams, 0);

            return(jobManager.DeleteJob(task));
        }
コード例 #3
0
        public async Task <ICommandResult> Execute(TwitterJobTask task)
        {
            var tweetsParameters = SearchParams(task.Tag, TimeSpan.FromMinutes(task.Interval));
            var tweets           = await SearchAsync.SearchTweets(tweetsParameters);

            tweets = tweets?.Where(x => x.CreatedAt > tweetsParameters.Since).ToList();

            var fail = ExceptionHandler.GetLastException()?.TwitterDescription;

            if (!String.IsNullOrEmpty(fail))
            {
                logger.LogError(
                    LoggingEvents.EXCEPTION_GET_TWITTER_MESSAGE,
                    "Failed to get messages by {hashtag} with {error}",
                    task.Tag.TagWithHash,
                    fail);
            }
            return(await queue.EnqueueMany(tweets));
        }
コード例 #4
0
        public async Task <ICommandResult> TryCreateJob(string tag)
        {
            var isAdded = new CommandResult();
            // todo: move to settings or make review interval
            var qParams       = new QueueParams(tag, hangfireSettings.Value.ServerName);
            var intervalMonth = 30 * 60 * 24;
            var initTask      = new TwitterJobTask(new HashTagWord(tag), qParams, intervalMonth);

            if (!CheckJobLimitExceeded(initTask))
            {
                await jobManager.StartNow(initTask);

                AddJob(initTask);
                isAdded.Success = true;
                isAdded.Message = "Twitter Job created.";
            }
            else
            {
                isAdded.Message = "Job Limit Exceeded";
            }
            return(isAdded);
        }