Запланированные задачи с использованием узла сельдерея
Я хочу создать очередь задач расписаний, куда я отправляю электронные письма в определенное время. Я использую нод-сельдерей, но в документах не ясно, как создать задачу и как ее использовать в определенное время?
При выполнении кода создает сообщение в очереди электронной почты:
{"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);
});
});
Как правильно определить задачу? Как я могу потреблять его в определенное время?