Где расположены конечные точки очередей облачных задач Google, и кто-то может использовать дочерний процесс nodejs? - PullRequest
0 голосов
/ 15 января 2019

У меня есть nodejs на сервере ядра приложений Google, но мне нужно выполнить некоторые фоновые задачи сразу после отправки ответа пользователю. Я использовал приведенный ниже пример кода с nodejs child-process, как описано здесь , но он хорошо работает только при локальном тестировании, но не работает в google app engine.

let {fork} = require('child_process');
const forked = fork('./worker.js');

router.post('/endpoint', (req, res) => {
    let options = req.body.options;
    let isResponded = false;
    async_helper.doWork(options).then((s) => {
        let reply = JSON.stringify(s);
        isResponded = true;
       res.status(200).send(reply).end();
       return null
    }).then(value => {
    //This is the long task of sending email
        forked.send(value);
        return null
    }).catch(err => {
    console.log(err);
        if (!isResponded) {
            let errr = err;
            res.status(500).send('Failed').end();
        }
        return null
    });
});

Каков наилучший способ реализации таких задач в производственном приложении ? Почему дочерний процесс не работает в App Engine? Должен ли я использовать очереди задач?

Очередь задач: Я также пробовал очередь задач после описанной выше проблемы, но я не могу различить конечную точку обработчика очереди задач и конечную точку моего сервера, поскольку этот официальный документ также указывает, что обработчик также прослушивает порт, так же, как мой существующая app.js точка входа.

Значит ли это, что та же самая app.js является точкой входа в очередь задач?

или это означает, что точка входа в очередь задач является еще одним "сервером" в обработчике приложений?

В течение нескольких часов я не нашел четкого руководства.

1 Ответ

0 голосов
/ 16 января 2019

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

...