我在我的node-express应用程序中使用cron,如果使用'node app.js'运行应用程序,这是完美的工作。从我对我的应用程序进行了对接,cron不会解雇工作。但如果我只是用节点app.js启动应用程序它运行良好。我搜索每个地方,但我得到'crontab'的结果或'仅从dockerfile'开始计划。我是码头工作者的新手。我是否需要为docker-compose添加任何内容以便它可以从节点应用程序中运行?以下是我的cron工作职能。
let myJobs = {}
let uniqueJobName = getUniqueId() // generating uniqe id for each job
myJobs[uniqueJobName] = new CronJob({
cronTime: '* * * * * *',
onTick: function () {
// calling my function
console.log('Invoked')
},
start: false
})
myJobs[uniqueJobName].start()
答案 0 :(得分:0)
我已经找到了问题。 Docker默认使用UTC时区。我没有在CRON工作中提供时区,我正在使用当地时区进行测试。 我们可以在下面的工作中提供时区,
timezone: 'Asia/Kolkata'
或者
从docker我们可以在docker-container中添加我们的本地文件(/ etc / timezone和/ etc / localtime)作为卷。
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
希望它会对某人有所帮助。