У меня есть файл, который можно обновить из нескольких процессов, поэтому я хочу использовать блокировку и нашел
https://github.com/gofrs/flock, который может помочь
Но я думаю, что эта проблема немного сложнее, например, для обновления файла, необходимого API для чтения файла / раздела ранее (мы предоставляем API для чтения file
или application
объектов name
)
Получите данные json, измените их в памяти и обновите файл.
Существует два варианта:
- обновление всего содержимого файла
- обновление раздела в файле, т.е. один
свойства приложения
Проблема выглядит следующим образом:
1. Process A & Process B (can be more…) Reads the object of
application name `node1`
2. Process A update the section (node1) with new data (for example
change the kind property and update)
3. Process B want to do the same , the problem is that between the time
it reads the data and the time it wants to update ,the data is not
valid since other process already update it.
кроме того, тот же сценарий действителен для всего контекста файла
Race
условие вопроса…
Это краткий пример файла, который некоторые процессы stateless
могут обновить в любой момент
ID: demo
version: 0.0.1
applications:
- name: node1
kind: html5
path: node1
expose:
- name: node_api
properties:
url: ${app-url}
- name: node2
kind: nodejs
path: node2
parameters:
quota: 256M
memory: 256M
Как мы можем преодолеть эту проблему или, возможно, упростить ее, чтобы избежать расы и сговора?