Cron производит повторяющиеся лог-записи - PullRequest
0 голосов
/ 11 июля 2020

в моем коде я пытаюсь создавать записи журнала для запросов, которые контролируются cronjob. Эти записи содержат только отметки времени запросов. Все в моем коде работает нормально, но когда дело доходит до второй / третьей / ... активации функции, я получаю это сообщение в моей консоли:

(node:14176) UnhandledPromiseRejectionWarning: MongoError: E11000 duplicate key error collection

Вторая / третья ... запись имеет ту же метку времени, что и первая запись, но запрос отправляется через 15 минут. Вы можете мне помочь с этой проблемой? Функция, которая создает и публикует журналы в моей БД, имеет номер createLog() и отлично работает ... но только при первом запуске.

Вот код:

const logger = require('../../logger');                             
const { mapMyWork } = require('./mappings');           
const axios = require('axios');
const job = require('node-cron');
const connectDB = require('./DB');
const { createLog } = require('../someStuff/createLogs');

connectDB;
job.schedule('*/15 * * * *',
doesWhatItShould = async function ( ) {
    createLog();
    const worklogs = await myWhy.getWorklogs({ from: everything, to: worksFine });
    if(!worklogs){
        logger.info('asleep?')
        return false;
    }
    
    const mappedData = mapMyWork(worklogs);

    await myCloud.sendImport(mappedWorklogs);
        
    return true;
   
});

job.start();

module.exports.doesWhatItShould;

1 Ответ

0 голосов
/ 17 июля 2020

Проблема решена, пришлось создать метку времени в моем файле creatLogs в функции, чтобы получать новую метку времени каждый ход, выполняемый моим cronJob.

...