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); }
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)); }
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)); }
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); }