Если ваш вопрос "возможно ли настроить такую систему и выполнять эти действия в реальном времени?" тогда я думаю, что ответ - да, я так думаю. Если ваш вопрос «как я могу уменьшить количество шагов для выполнения вышеизложенного», то я не уверен, что смогу помочь, и буду полагаться на одного из экспертов здесь и не могу дождаться ответа!
Я внедрил систему, которая, по моему мнению, аналогична той, которую вы описываете для исследования торговых алгоритмов Форекс (например, загрузка данных в хранилище с моего ноутбука, рабочие вычислительных машин извлекают данные и работают с ними, отправляют результаты обратно в хранилище и Я загружаю скомпилированные результаты с моего ноутбука).
Я использовал Google PubSub архитектура - извините, если вы уже прочитали об этом. Это позволяет почти в режиме реального времени обмен сообщениями между программами. Например, на вашем ноутбуке может быть зацикливание кода, которое сканирует папку и ищет новые изображения. Когда они появляются, они автоматически загружают файлы в корзину и, как только они оказываются в корзине, могут отправлять сообщение экземплярам, сообщая им, что есть новые файлы для обработки, или вы можете использовать функцию «уведомление об изменении» в Google Storage ведра. Экземпляры могут выполнять работу, отправлять результаты обратно в хранилище и отправлять уведомление коду, работающему на вашем ноутбуке, о том, что работа выполнена и результаты доступны для получения.
Обратите внимание, что я настроил это для своего проекта выше и столкнулся с проблемами до такой степени, что я отказался от PubSub. Причина заключалась в том, что клиентская библиотека Python для PubSub поддерживает только «асинхронные» извлечения сообщений, что, по-видимому, означает, что подписчики будут извлекать несколько сообщений из очереди и обрабатывать их параллельно. Существуют некоторые функции, помогающие управлять «потоком» сообщений, встроенных в API, но даже с их внедрением я не смог заставить его работать так, как мне хотелось. Для моего конкретного приложения я хотел обрабатывать все по порядку, по одному файлу за раз, потому что для меня было важно, чтобы я знал, что делает экземпляр, и в каком порядке он это делает. В поиске Google есть несколько потоков, StackOverflow и группы Google, которые обсуждают обходные пути для этого, используя очереди, классы, распределение конкретных задач для конкретных экземпляров и т. д., которые я пробовал, но даже эти проблемы представляли для меня проблемы. Некоторые из этих ссылок:
Запуск синхронного извлечения в PubSub с помощью API-интерфейса клиента Python и Проблемы pubsub при извлечении по одному сообщению за один раз , и их гораздо больше, если они вам нужны!
Вы можете обнаружить, что если обработка изображения относительно быстрая, порядок не слишком важен, и вы не возражаете против экземпляра, работающего над несколькими вещами параллельно, что мои проблемы на самом деле не относятся к вашему делу.
К вашему сведению, я просто сделал простой цикл для своих «рабочих экземпляров», который сканирует корзину «списка задач» каждые 30 секунд или что угодно, чтобы искать новые файлы для обработки, но, очевидно, это не совсем реально. Время подход, который вы изначально искали. Удачи!