在Meteor.js中运行后台任务
Running background tasks in Meteor.js
这是我的场景:
1. Scrape some data every X minutes from example.com
2. Insert it to Mongodb database
3. Subscribe for this data in Meteor App.
因为,目前我不是很擅长流星这就是我要做的:
1. Write scraper script for example.com in Python or PHP.
2. Run script every X minutes with cronjob.
3. Insert it to Mongodb.
是否可以在不使用Python或PHP的情况下完全使用Meteor?如何处理每X分钟运行一次的任务?
有类似Cron的系统,例如filtere:synchronized Cron for Meteor。在那里,您可以使用Later.js语法注册作业,该语法类似于从filtere:synchronized cron readme file:中获取的示例
SyncedCron.add({
name: 'Crunch some important numbers for the marketing department',
schedule: function(parser) {
// parser is a later.parse object
return parser.text('every 2 hours');
},
job: function() {
var numbersCrunched = CrushSomeNumbers();
return numbersCrunched;
}
});
如果你想依赖操作系统级的cron作业,你可以在Meteor.js应用程序中提供一个HTTP端点,然后在选择的时间通过curl访问。
我可以推荐Steve Jobs,这是我在Meteor中安排后台工作的新软件包。
您可以使用register
、replicate
和remove
动作
// Register the job
Jobs.register({
dataScraper: function (arg) {
var data = getData()
if (data) {
this.replicate({
in: {
minutes: 5
}
});
this.remove(); // or, this.success(data)
} else {
this.reschedule({
in: {
minutes: 5
}
})
}
}
})
// Schedule the job to run on Meteor startup
// `singular` ensures that there is only pending job with the same configuration
Meteor.startup(function () {
Jobs.run("dataScraper", {
in: {
minutes: 5
},
singular: true
})
})
根据您的偏好,您可以将结果存储在数据库中,作为作业历史记录的一部分,也可以将其完全删除。
相关文章:
- WinJS(WP8.1):从后台任务更新辅助磁贴
- Gulp Git首先运行提交任务,然后运行推送任务
- 如何按顺序运行gullow任务
- 如何按特定顺序运行 Gulp 任务
- 在Meteor.js中运行后台任务
- 如何从Node.js运行gullow任务-gullow.start()的任何更好的替代方案
- Meteor中的后台任务
- chrome延长时间,后台任务
- 如何使用Grunt异步运行2同步任务
- 在完成其他任务后运行gullow任务
- Grunt为任务设置选项,并使用新值运行该任务
- 运行“监视”任务 等待中..警告:EMFILE,打开的文件“./.”太多
- 使用 setTimeout 在不阻止输入的情况下运行大型任务,并使用 Promise 找出任务何时完成
- 使用gulp-watch运行现有任务
- 并行运行 npm 任务
- 吞噬未按顺序运行的任务
- 在另一个任务之前异步运行 grunt 任务
- 后台任务和正在运行的应用程序检测
- 使用javascript在后台运行一个任务
- 我怎样才能看到我的基于javascript的UWP是否在“后台任务”中运行?上下文