我正在搜索Nodejs调度程序以安排路由(例如:self.canvas = MyFigureCanvas(...)
),以便在一段时间后自动调用路径 / schedule 。我搜索了 node-schedule 和 node-cron ,但据我所知,只是为了调用特定功能的调度时间,所以它不符合我的要求
感谢您的帮助!!
答案 0 :(得分:0)
您是否要求进行实际的HTTP调用,或者您是否只想要以特定间隔与路由关联的函数处理程序?
对于前者,我使用预定的AWS lambda来调用我的路线。这样,呼叫被路由到任何可用于处理的实例(假设负载平衡环境)。
package.json
{
"dependencies": {
"superagent": "3.5.2"
},
"name": "webhook-caller",
"private": true,
"version": "0.0.0",
"engines": {
"node": "4.2.1"
}
}
template.yml
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: Calls a URL when triggered
Resources:
webhookcaller:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs6.10
CodeUri: .
Description: Calls a URL when triggered
MemorySize: 128
Timeout: 60
Role: !<tag:yaml.org,2002:js/undefined> ''
index.js
'use strict';
var request = require( 'superagent' );
exports.handler = ( event, context ) => {
console.log( "Calling GET " + process.env.URL );
request
.post( process.env.URL )
.end( function ( err, res ) {
if ( err != null ) {
console.error( "Error calling GET " + process.env.URL );
console.error( err );
} else {
if ( res.status == 200 ) {
console.log( "Return code: " + res.status );
} else {
console.error( "Return code: " + res.status );
}
}
} );
};
否则,只需使用普通的javascript计时器:https://nodejs.org/en/docs/guides/timers-in-node/
答案 1 :(得分:-1)
好吧,你总是可以让路由调用一个函数,并且还有node-cron或node-schedule调用它,但如果你真正需要的是一个预定的http调用,那么你可以使用像这样的在线服务cronjob https://cron-job.org,它是免费的。