Как бороться с подтверждениями для асинхронных типов задач - PullRequest
0 голосов
/ 06 мая 2018

Сейчас у меня есть настройка очереди RabbitMQ, и у меня есть несколько работников, которые прослушивают события, помещенные в эту очередь.

События по сути являются строковыми URL-адресами (например, "https://www.youtube.com"),", и они будут обработаны через кукловода.

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

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

edit - код ниже - это то, что я в значительной степени называю частью consume rabbitmq. Поскольку это асинхронный режим, он просто проходит эту операцию и сразу же получает подтверждение.

    (async () => {
    const args = {
        evaluatePage: (() => ({
            title: $('title').text(),
        })),
        persistCache: true,
        cache,
        onSuccess: (result => {
            console.log('value for result -- ', result.result.title);
        }),
    };

    // we need to first setup the crawler
    // then we can start sending information to it
    const crawler = await HCCrawler.launch(args);

    crawler.queue(urls);

    await crawler.onIdle();
    await crawler.close();
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...