我的Cron工作只运行一次,我希望它每分钟运行一次

时间:2020-08-31 14:09:15

标签: javascript node.js cron discord discord.js

我尝试搜索解决方案或有关在不和谐的js中使用cron的任何信息,但搜索却毫无结果。我还是很没经验,希望您对我耐心:p

const { mudaeon, mudaeoff} = require('./mudaetime.json')
const cron  = require('cron');

module.exports = {
    name: 'mudaetime',
    description: '...',
    async execute(message, args){
        if(mudaeon){
            const channel = message.client.channels.cache.get('*id*')
            let scheduledMessage = new cron.CronJob("*/1 * * * *", () => {
                scheduledMessage.start()},
                message.react('✅'),
                channel.send("check $tu ! <@&*id*>"))
        } else(mudaeoff);{
            let scheduledMessage = new cron.CronJob("*/1 * * * *")
            scheduledMessage.stop();
        }
    }
}; 

2 个答案:

答案 0 :(得分:0)

您似乎从未真正启动过cronJob。浏览Cron文档(https://www.npmjs.com/package/cron#usage-basic-cron-usage),您需要启动Cron作业才能执行代码。初始化cron作业时的第二个参数是要执行的功能。此功能仅在您调用作业后执行。

尝试一下:

const cron = require('cron');

module.exports = {
    name: 'mudaetime',
    description: '...',
    async execute(message, args) {
        if (mudaeon) {
            const channel = message.client.channels.cache.get('*id*');
            let scheduledMessage = new cron.CronJob(
                '*/1 * * * *',
                () => {
          message.react('✅'); 
          channel.send('check $tu ! <@&*id*>');
                },
                
      );
      scheduledMessage.start();
        } else mudaeoff;
        {
            let scheduledMessage = new cron.CronJob('*/1 * * * *');
            scheduledMessage.stop();
        }
    },
};

希望这可以解决您的问题!

答案 1 :(得分:0)

因此,我最终接受了Tin Nyugen的建议,并运行了一个基本示例,事实证明,这比我确定的要简单得多:


    const cron = require('node-cron');


module.exports = {
    name: 'mudaestart',
    description: '...',
    execute(message, args){
        message.react('✅')
        cron.schedule('* * * * *', () => {
            message.channel.send('check $tu !! <@&id>')
        })
    }
} 

我切换到node-cron:p我不确定这是编写此代码的最佳方法,但是我很高兴它能工作,并且我在尝试编写此命令方面学到了很多东西!