/// <summary> /// Saves messages to disk /// </summary> /// <param name="messages">message</param> /// <param name="destinationName">destination name</param> /// <returns>list of saved files</returns> private static List<string> SaveMessages(List<STOMPMessage> messages, string destinationName, StorageConfiguration storageConfiguration) { TraceLogger.Log(NonLocalizableResource.SavingMessageFromDestiantion, messages.Count, destinationName); List<string> files = new List<string>(); Parallel.ForEach(messages, message => { string filePath = DiskIOHelper.GetTempFileFullName(storageConfiguration.StorageLocation, storageConfiguration.BaseFileName, destinationName, message.Metadata.MessageType); DiskIO.Write(filePath, message.Data); files.Add(filePath); }); return files; }
public static async void ProcessAsync(List<STOMPMessage> messageList, string destinationName, StorageConfiguration storageConfiguration, string dbConnectionString) { try { if (!string.IsNullOrEmpty(dbConnectionString)) await Task.Factory.StartNew(() => InsertToDatabase(messageList, dbConnectionString)); if (storageConfiguration.SaveOnDisk) await SaveMessagesAsynchronously(messageList, destinationName, storageConfiguration); //Task.Factory.StartNew(() => SaveMessages(messageList, destinationName, storageConfiguration)); } catch (Exception e) { TraceLogger.Log(e); } }
private static Task SaveMessagesAsynchronously(List<STOMPMessage> messages, string destinationName, StorageConfiguration storageConfiguration) { var task = Task.Factory.StartNew(() => SaveMessages(messages, destinationName, storageConfiguration)); return task; }
public GlassfishSubscriberConfiguration(StorageConfiguration storageConfiguartion) { _config.StorageConfiguration = storageConfiguartion; }