public static async Task <string> Run([ActivityTrigger] StorageQueueJobProperties sqJobProperties, TraceWriter log) { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(sqJobProperties.ConnectionString); CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient(); CloudQueue queue = queueClient.GetQueueReference(sqJobProperties.Queue); await queue.CreateIfNotExistsAsync(); int secondsPerBatch = Convert.ToInt16(Environment.GetEnvironmentVariable("secondsPerBatch")); int messagesInBatch = sqJobProperties.Frequency * secondsPerBatch; IEnumerable <string> messages = Messages.CreateMessages(messagesInBatch, sqJobProperties.MessageScheme); try { foreach (string message in messages) { await queue.AddMessageAsync(new CloudQueueMessage(message)); } //var sbMessages = (List<CloudQueueMessage>) messages.Select(m => new CloudQueueMessage(m)); } catch (Exception exception) { log.Info($"Exception: {exception.Message}"); } log.Info($"sent batch of {messages.Count()} messages"); return($"finished sending {messages.Count()} to {sqJobProperties.Queue}!"); }
public static async Task <string> Run([ActivityTrigger] StorageQueueJobProperties sqJobProperties, TraceWriter log) { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(sqJobProperties.ConnectionString); CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient(); CloudQueue queue = queueClient.GetQueueReference(sqJobProperties.Queue); await queue.CreateIfNotExistsAsync(); int numOfMessages = sqJobProperties.Frequency * 60 * sqJobProperties.Duration; string[] messages = (string[])Messages.CreateMessages(numOfMessages, sqJobProperties.MessageScheme); for (var i = 0; i < numOfMessages; i++) { try { var message = messages[i]; log.Info($"Sending message: {message}"); CloudQueueMessage cloudQueueMessage = new CloudQueueMessage(message); await queue.AddMessageAsync(cloudQueueMessage); } catch (Exception exception) { log.Info($"Exception: {exception.Message}"); } await Task.Delay(1000 / sqJobProperties.Frequency); } log.Info($"finished."); return($"finished sending {numOfMessages} to {sqJobProperties.Queue}!"); }