Модуль Google App Engine __main__

1

Я создаю модуль сеялки данных, который ищет все модели, используя интроспекцию и модуль inspect. Я индексирую модели, которые я нашел в строке, похожей на module.model_name потому что в разных модулях может быть больше модулей с одинаковым именем.

Проблема в том, что module иногда является правильным именем модуля, но иногда он __main__, вероятно, потому, что этот конкретный модуль был первым, который вызывался для обработки URL-адреса после запуска экземпляра. В любом случае я могу избежать этого, возможно, заставляя конкретный модуль всегда быть __main__?

Эти проблемы ухудшаются, когда я запускаю сразу несколько экземпляров, потому что я также получаю противоречивые данные между экземплярами, каждый из которых имеет другой модуль __main__.

благодаря

  • 0
    Что такое «сеялка данных»?
  • 0
    Сеялка данных - это модуль, который предоставляет начальные данные. Возможно, это не лучшее имя, я действительно не видел его в интернете, но эй, это то, что он делает
Показать ещё 1 комментарий
Теги:
google-app-engine

1 ответ

2
Лучший ответ

каждая запись script в вашем app.yaml будет выполнена как модуль __main__. Если вам нужен только один __main__ вам нужно запустить все через одну точку входа и отобразить все через один экземпляр WSGIApplication.

  • 0
    Не совсем то, что я искал, но то, что вы сказали, кажется правильным. Я принимаю ваш ответ, но все еще ищу лучшие пути. Я не могу предоставить ни одного script так как некоторые из них являются сторонними библиотеками.
  • 0
    @sttwister FWIW, только один модуль будет называться __main__ одновременно - тот, который был вызван для этого запроса. Если ваш код всегда вызывается одним и тем же модулем, вы должны знать, что это за модуль. Если нет, существуют различные хаки, которые вы можете использовать, чтобы выяснить, что это такое, например, проверка стека.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню