Ограничить распараллеливание Upstart?

Как я подозревал, существует хороший способ сделать это.

1: в классе объема необходимо переопределить активировать-метод

unity::scopes::ActivationQueryBase::UPtr NewsScope::activate(const sc::Result &result,
                                              const unity::scopes::ActionMetadata &metadata) {
    return unity::scopes::ActivationQueryBase::UPtr(new NewsAction(result, metadata));
}

2: В единице:: объемы:: класс ActivationQueryBase (здесь NewsAction) Вы определяете активировать-метод, например, как это:

sc::ActivationResponse NewsAction::activate()
{
    initScope();

    if (openWithoutPreview) {
        return sc::ActivationResponse(sc::ActivationResponse::Status::NotHandled);
    }

    return sc::ActivationResponse(sc::ActivationResponse::Status::ShowPreview);
}

(следят за ответом активации: NotHandled говорит объему отправлять его внешнему диспетчеру.)

3: Наконец, если создают карты (CategorisedResult) в searchquery-классе, необходимо сказать им прерывать активацию. (Результат set_intercept_activation ()), Например, как это:

for (const Result &result : results) {
    sc::CategorisedResult card(category);

    fillCard(card, result);
    card.set_intercept_activation();

    // Push the result
    if (!reply->push(card)) {
        // If we fail to push, it means the query has been cancelled.
        // So don't continue;
        return;
    }
}

я нашел решение (скрытым) в этом руководстве: https://developer.ubuntu.com/api/scopes/cpp/development/index /

0
задан 14.04.2020, 12:59

1 ответ

Вы смотрели на выскочки документацию? Я настоятельно рекомендую вам просмотреть это. Его можно найти здесь .

Одним из простых способов может быть задержка некоторых между каждым запуском или использование сценария после запуска для задержки до тех пор, пока ваша служба не будет запущена, прежде чем вы запустите следующий экземпляр? Посмотрите на некоторые примеры, чтобы получить некоторые идеи, как с этим справиться. Например. 6.22 6.14.2 ++ http://upstart.ubuntu.com/cookbook/ Вы также можете расширить этот скрипт в соответствии со своими потребностями?

0
ответ дан 14.04.2020, 12:59
  • 1
    @HRJ It' s, вероятно, так из-за ureadahead, который кэширует жесткий диск в память. – DShultz 14.04.2020, 13:00
  • 2
    Да, я действительно скользил через поваренную книгу. То, в чем я нуждаюсь, является установкой в масштабе всей системы, которая регулирует параллельное выполнение всех задач. Прямо сейчас мой жесткий диск насыщается во время запуска, которому я верю происходит из-за большого количества задач, порождаемых одновременно. – IgorGanapolsky 14.04.2020, 13:00

Теги

Похожие вопросы