Ошибка с MemoryMappedFile (NotSupportedException) .net core при использовании под linux?

129
20 сентября 2019, 22:50

Доброе времени суток. Возникла необходимость делиться информацией между двумя приложениями. Вспомнил что есть MemoryMappedFile, решил воспользоваться. Зашел msdn глянул работает и под .net core - что очень важно. Так как рассматривается вариант запуска сервисов под linux-ом. Но тут же я столкнулся с проблемой под linux-ом:

"Unhandled Exception: System.PlatformNotSupportedException: Named maps are not supported."

Вопрос все еще актуален
Есть ли какие-то альтернативы? Как вы решаете проблему с обработкой больших объемов, что бы они были доступны между двух и более сервисов?

Задача: есть данные примерно такого вида: id price1 price1 (таких записей 1млн) которые необходимо обновлять, ну скажем раз 20 в секунду

UPDATE#1

Named maps - это функция, предоставляемая Windows. Как правило, отображаемые в память файлы работают путем межпроцессного взаимодействия, отображая один и тот же файл в несколько процессов, например, используя MemoryMappedFile.CreateFromFile.

Если не использовать именование, то запись будет иметь такой вид:

string path = "/home/test/test";
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
using (MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(fs, null, fs.Length, MemoryMappedFileAccess.ReadWrite, HandleInheritability.None, true))
using (MemoryMappedViewAccessor acc = mmf.CreateViewAccessor())
Answer 1

Именованные memory mapped файлы под Linux не поддерживаются.

Альтернатива - готовые key-value storage. IMO, проще всего будет прикрутить Redis. Есть готовый образ на dockerhub + есть хороший .NET клиент от Stack Exchange

READ ALSO
Статическая библитека на C#

Статическая библитека на C#

Потребовалось мне создать службу Windows и десктопное приложениеОбе этих программы, в идеале, должны работать с одной и той же коллекцией пользовательского...

149
Как запретить игроку отклоняться от оси x и y? Чтобы он ходил ровно по оси x и y

Как запретить игроку отклоняться от оси x и y? Чтобы он ходил ровно по оси x и y

Как запретить игроку отклонять от оси x и y? Чтобы он ходил ровно по оси x и y

202
combobox search

combobox search

Интересует вопрос как в combobox реализовать поиск не по первой букве/цифре/символу, а по вхождению в строку?

166
Можно ли передавать объект как другой тип, если у него есть операторы неявного преобразования

Можно ли передавать объект как другой тип, если у него есть операторы неявного преобразования

Хотелось бы узнать, допустим есть класс, который можно инициализировать как через конструктор, так и через оператор неявного преобразования:

148