Запланированные задачи с использованием узла сельдерея

Я хочу создать очередь задач расписаний, куда я отправляю электронные письма в определенное время. Я использую нод-сельдерей, но в документах не ясно, как создать задачу и как ее использовать в определенное время?

При выполнении кода создает сообщение в очереди электронной почты:

{"task":"tasks.send_mail","args":[],"kwargs":[1,2],"id":"9a32feb6-68b2-44b3-94c4-214efcf1b25d"}
const celery = require('node-celery'),
    client = celery.createClient({
        CELERY_BROKER_URL: 'amqp://guest:guest@localhost:5672//',
        CELERY_RESULT_BACKEND: 'amqp://',
        CELERY_ROUTES: {
            'tasks.send_mail': {
                queue: 'email'
            }
        },
        IGNORE_RESULT: true /* I added these cause, it wont endup in infinite connection loop (which is wrong) 
            and create random queues and keeps publishing in email queue infinitely.
        */
    });

// task
send_mail = client.createTask('tasks.send_mail');

client.on('connect', function () {
    const result = send_mail.call([], [1, 2], {
        eta: new Date(Date.now() + 60 * 60 * 1000) // an hour later to execute
    });
    result.on('ready', function (data) {
        console.log('ended'); // never comes here
        console.log(data);
    });
});

Как правильно определить задачу? Как я могу потреблять его в определенное время?

0 ответов

Другие вопросы по тегам