Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Разумеется, этот флаг стоит. Но он означает лишь то, что несколько программ могут одновременно читать или писать в файл. К атомарным локировкам это отношения не имеет.
шта?
проблема, а что, если мастер еще не все записал, а слейвы уже начали читать?
FILE_SHARE_READ должно решить проблему
для особо ленивых
"кто умеет читать, тот имеет преимущество" https://www.mql5.com/ru/forum/34503
ничего подобного.
1) каждый слейв при установке пишет файл со своим именем, или вписывает в общий файл строку со своим именем.
2) как только мастер находит нового слева создает для него датафайл и пишет туда данные
3) слейв читает их удаляет данные\файл
4) мастер видит чистый файл\отсутствие файла - пишет новый, пишет новую порцию данных
5) каждый слейв при удалении удаляет свой файл\строку в общем файле
Преимущество - мастер всегда знает количество слейвов, и если слейв не отвечает может просигналить... и т.д. и т.п.
У меня для каждого слейва отдельный терминал )) Вы что, не поняли, зачем это нужно? Есть 10 инвесторов, у каждого свой счет, соответственно, терминал. Задача - минимизировать нагрузку на процессор. Все тяжелые расчеты делаются на одном терминале, сигналы на открытие позы передаются на другие, а там уже, в зависимости от желания клиента, работает легкая часть принятия решений с индивидуальными настройками и (в будущем) менименеджментом.
Про маркет я писал потому, что хочется зарезервировать такую возможность.
Задача решена, лучше не сделать.
Так они же все на одном компе ? используйте : FILE_COMMON расположение файла в общей папке всех клиентских терминалов \Terminal\Common\Files
Думаю это тот самый случай, когда удаленное взаимодействие легче локального.
Алексей, а Вы не задумывались над таким вариантом: слейвы, через WebRequest запрашивают с централизованного сервера результаты расчета. Если по каким-то причинам, расчеты получить не удалось, слейв делает их уже самостоятельно. Взаимодействие с удаленными серверами в Маркете не запрещено, в случае выключения сервера - нагрузка перекладывается на компьютер пользователя. В общем настоящие облачные вычисления, красота!
Думаю это тот самый случай, когда удаленное взаимодействие легче локального.
Алексей, а Вы не задумывались над таким вариантом: слейвы, через WebRequest запрашивают с централизованного сервера результаты расчета. Если по каким-то причинам, расчеты получить не удалось, слейв делает их уже самостоятельно. Взаимодействие с удаленными серверами в Маркете не запрещено, в случае выключения сервера - нагрузка перекладывается на компьютер пользователя. В общем настоящие облачные вычисления, красота!
шта?
FILE_SHARE_READ должно решить проблему
для особо ленивых
"кто умеет читать, тот имеет преимущество" https://www.mql5.com/ru/forum/34503
Для особо внимательных - уже 100500 раз написал, что это флаг стоит изначально, я не новичок. Короче, сделал так - все работает. И FILE_SHARE_READ не имеет ни малейшего отношения к моему вопросу о синхронизации.