Можете ли вы определить приоритет задачи?
Я хочу придать более высокий приоритет некоторым задачам, которые я выполняю в своем приложении Meteor. Я не хочу масштабировать приложение на данный момент.
Я хочу, чтобы иметь возможность обрабатывать онлайн-платежи, и я должен вставить соответствующие данные в базу данных, я не хочу ждать слишком долго для этой операции (при условии, что сервер в качестве постоянной высокой нагрузки). Я хочу написать функцию, которая получит более высокий приоритет выполнения по сравнению с остальными И то же самое относится к работе с базой данных.
Поэтому, когда я пытаюсь сохранить в Монго: Payments.insert(paymentData)
Этот метод является синхронизированным, но это не главное, я хочу, чтобы эта вставка имела высший приоритет над любыми операциями с базой данных.
Как я могу сделать это с одним приложением Meteor?
1 ответ
Узел однопоточный. Метеор построен на этом, и он использует вещь под названием "Волокна", которая полу симулирует многопоточность для однопоточных приложений.
прочитайте https://meteorhacks.com/fibers-eventloop-and-meteor.html
Первое, что вы увидите, это отсутствие концепции приоритета выполнения. Вы можете изменить количество запросов, которые один клиент будет обрабатывать по сравнению с другим клиентом, в зависимости от того, обрабатывает ли он платеж.
Тем не менее, если узел находится под высокой нагрузкой, как вы утверждаете, я не думаю, что вы действительно можете помочь ему слишком много, если он не может идти в ногу.