gpt4 book ai didi

javascript - 使用 Node CRON 作业调用自己的请求

转载 作者:行者123 更新时间:2023-11-30 20:19:41 25 4
gpt4 key购买 nike

我有以下片段:

const express = require('express')
const app = express()
const cronJob = require('cron').CronJob

app.get('/test', (req, res) => {
// Do something here
}

new cronJob('* * * * * *', () => {
// Call localhost:3000/test here
}, null, true, 'Asia/Manila')

app.listen(3000, () => console.log('Successfully listened to app 3000'))

通常在 Node 上,如果在浏览器上调用 localhost:3000/test 运行,对吗?一旦 Node 应用程序启动,我想让 CRON 运行它而不在浏览器上键入它。如果可能的话,不管主机名是不是本地主机,CRON 都应该在不在浏览器上键入的情况下发出请求。这能做到吗?

最佳答案

我阅读了上面关于问题本身的评论,并决定添加我的想法,即使我认为您似乎找到了解决方案。

在我看来,调用“方法”本身比点击“http”来获得所需的响应要干净得多。

你有两个选择:

  • 通过请求调用命中“domain.com/test”端点。
  • 只需调用与上述 url 相同的方法即可。通过这种方式,您将“节省”使用响应和请求 header “设置”对 Express 应用程序的新请求所需的开销。 (示例如下)

假设这是您的代码:

const handleTestData = () => return 'something';

app.get('/test', (req, res) => {
const result = handleTestData();
res.send(result);
}

new cronJob('* * * * * *', () => {
// instead of calling http and getting the response
// and adding overhead, just call the function
const result = handleTestData();
// do what you need with the result
}, null, true, 'Asia/Manila')

关于javascript - 使用 Node CRON 作业调用自己的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51581660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com