У меня есть работающий заказ для 2-х обработчиков Удаление и переупорядочение изображений и вы хотите получить рекомендации по наилучшему решению.Проводники CQRS выполняются в определенном порядке
В пользовательском интерфейсе некоторые фотографии удаляются, пользователь нажимает на удаленную кнопку. Запускается весь поток, удаляет команду до обработчика событий, который фактически удаляет физические файлы.
Затем сразу пользователь сортирует оставшиеся изображения. Новый поток от команды переупорядочения до переупорядочивающего обработчика событий для файловой системы снова срабатывает.
Проблема с параллелизмом уже существует. Переупорядочение не может быть правильно применено без удаления. На данный момент эта проблема обрабатывается каким-то замком. Временный файл создается, а затем удаляется в конце потока удаления. Пока этот файл существует, ожидает другой поток (переупорядочение или удаление в зависимости от действий пользователя).
Это не идеальное решение и хотите изменить его. Потенциальное решение должно быть довольно быстрым (конечно, текущее не является быстрым), так как пользовательский интерфейс обновляется через вызов JSON в конце заказа.
В более поздней реализации мы собираемся использовать очередь событий, но на данный момент мы довольно застряли.
Любая идея была бы оценена! Спасибо, mosu '!
Редактировать: Другие возможные проблемы согласованности, которые были у нас были решены с помощью диспетчера данных Javascript на стороне клиента. В основном, будучи оптимистом и обманывает пользователя! :) Я начинаю верить, что это тоже путь сюда. Но тогда как я узнаю, когда данные изменяются в файловой системе?
Вы используете CQRS и центральную архитектуру событий с возможной согласованностью для галереи изображений? Я уверен, что у вас есть свои причины, мне действительно интересно, что это такое. CQRS не подходит для всего.KISS по-прежнему следует использовать. –
Не совсем. Галерея изображений - это всего лишь часть веб-сайта управления транспортными средствами. До сих пор у нас не было ситуации, когда некоторые ресурсы используются в таком параллельном контексте. Кроме того, до сих пор CQRS работал очень хорошо для нас. Мы все еще учимся и хотим учиться у других пользователей! – mosu