Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Job queue #257

Merged
merged 6 commits into from
Jul 9, 2015
Merged

Job queue #257

merged 6 commits into from
Jul 9, 2015

Conversation

j0tunn
Copy link
Contributor

@j0tunn j0tunn commented Jul 4, 2015

Shared Job Queue, which can be used in technologies.

@levonet levonet added the review label Jul 4, 2015
@j0tunn
Copy link
Contributor Author

j0tunn commented Jul 4, 2015

@blond @SevInf @scf2k Гляньте, плз

@j0tunn
Copy link
Contributor Author

j0tunn commented Jul 4, 2015

@blond, использование этого расшареного пула в технологиях borschik и bemhtml вместо создания процессов через sibling уменьшило время сборки приблизительно на 25%

var promise = vow.promise();
var args = [].slice.call(arguments, 1);

this._workers(path, args, function (res) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А два аргумента сюда вернуть не получится? В ноде принято в таких случаях использовать сигнатуру callback(error, result)

@arikon
Copy link
Member

arikon commented Jul 6, 2015

@j0tunn Нужна документация о том, как этим пользоваться в технологиях

var res = null;
var err = null;
try {
res = require(module).apply(null, args);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Получается, что функция может работать только синхронно?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да

@j0tunn
Copy link
Contributor Author

j0tunn commented Jul 6, 2015

🆙

@@ -1432,3 +1432,28 @@ Cache Node::getNodeCache(String targetName)

* Валидация кэша: [Технология deps](/mdevils/enb/blob/master/techs/deps.js#L33)
* Кэширование результатов сборки: [Технология deps](/mdevils/enb/blob/master/techs/deps.js#L73)

node.getSharedResources
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может фунуции/методы указывать с сигнатурой?

node.getSharedResources()

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А, там везде так

@blond
Copy link
Member

blond commented Jul 6, 2015

Можно ли написать тесты на это поведение?

@blond
Copy link
Member

blond commented Jul 6, 2015

уменьшило время сборки приблизительно на 25%

@j0tunn, как замерял? Можем ли написать тесты на производительность?

Опции, например, кол-во воркеров как-то влияют на скорость?

@blond blond added in progress and removed review labels Jul 6, 2015
@j0tunn
Copy link
Contributor Author

j0tunn commented Jul 7, 2015

Можно ли написать тесты на это поведение?

Теоретически можно, но это просто обертка над модулем worker-farm, и тесты будут из разряда "при вызове этого метода, позвался вон тот из woker-farm", логики тут практически нет

как замерял?

Тупо time'ом. Прогнал без использования очереди - сборка заняла 2m35s - 2m40s, прогнал с использованием очереди в двух технологиях (где создавались отдельные процессы через sibling) - 1m45s - 1m50s

Опции, например, кол-во воркеров как-то влияют на скорость?

Кол-во воркеров на скорость влияют. Чем меньше воркеров - тем меньше накладных расходов на их создание, но при этом меньше тасок, которые могут выполняться одновременно. Оптимальный вариант - по количеству ядер в системе, как оно по дефолту и есть. Сегодня планирую поиграться с maxConcurrentCallsPerWorker - это может повлиять на скорость

@j0tunn
Copy link
Contributor Author

j0tunn commented Jul 7, 2015

Можем ли написать тесты на производительность?

Понятия не имею как

@blond blond added review and removed in progress labels Jul 7, 2015
@j0tunn
Copy link
Contributor Author

j0tunn commented Jul 9, 2015

Поигрался с настройками worker-farm, удалось добиться только худшего результата. Так что оставляем дефолтные

blond added a commit that referenced this pull request Jul 9, 2015
@blond blond merged commit 7ecf857 into enb:master Jul 9, 2015
@blond blond removed the review label Jul 9, 2015
@blond blond added this to the 0.16 milestone Jul 9, 2015
@j0tunn j0tunn deleted the feature/job.queue branch July 10, 2015 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants