Просто проверьте, прошло ли это 4 минуты, и запустите script2, если он имеет:
starttime=time.time()
while True:
%run "script1.py"
if (time.time() - starttime) >= 240.0
%run "script2.py"
time.sleep(60.0 - ((time.time() - starttime) % 60.0))
Его основное преимущество - то, что это - конвенция и делает вещи последовательными через все наши контроллеры. Это помогает нам настроить тестирование "контексты" / приспособления, которые могут инициализировать среду в сценарии интеграционного тестирования. В большинстве случаев, Конвенции == Скорость, поскольку это удаляет много изо "что если" сценарии от Ваших конструктивных соображений.
Так как все наши действия контроллера следуют за тем же шаблоном, мы можем принять много вещей, и он ускоряет и оптимизировал наши усилия по комплексному испытанию контроллера.
Нет ничего неправильно, обязательно, с наличием нескольких аргументов действию контроллера, но мы нашли, что наличие фактического объекта модели предоставляет нам некоторую дополнительную функциональность, так как модель может содержать простую логику и выставить свойства удобства, которые могут просто некоторые более сложные аспекты его собственного состояния, и т.д. - в основном, это - аргумент в пользу того, чтобы иметь любую богатую модель и не уникально для шаблона Thunderdome/OMIOMO.
Преимущество thunderdome принципа - то, что он упрощает контроллеры. Поскольку работа отображения http оценивает объектам, сделан за пределами контроллеров, это означает, что контроллеры только делают то, что они должны.
Преимущество состоит в том, что Вы не полагаетесь ни на какой вид контекста (как состояние сеанса, например) снаружи методов контроллера. Это помогает протестировать их, поскольку Вы не должны "моделировать" тот контекст с помощью насмешек, но он также делает это менее практичным, поскольку необходимо передать все параметрами.