我正在集群模式下评估 arangodb“社区版”v.3.7.6。目前,我正试图弄清楚如何通过我的 foxx 服务中的队列可靠地安排定期重复发生的工作。我已经阅读了此处和此处的文档页面,并提出了以下脚本:
setup.js
const queues = require('@arangodb/foxx/queues')
var myQueue = undefined
try {
myQueue = queues.get('myqueue')
} catch (e) {
myQueue = queues.create('myqueue')
}
myQueue.push({
name: "myRegularTask",
mount: module.context.mount
},
{to: 'hello@example.com', body: 'Hello world'},
{
repeatTimes: Infinity,
repeatUntil: Date.now() + (24 * 60 * 60 * 1000),
repeatDelay: 5 * 1000
});
myRegularTask.js
'use strict';
const db = require('@arangodb').db;
const testCollection = db._collection('test')
testCollection.save({text: 'sample text'});
清单.json
{
"$schema": "http://json.schemastore.org/foxx-manifest",
"main": "index.js",
"engines": {
"arangodb": "^3.0.0"
},
"name": "myapp",
"version": "0.1.0",
"tests": "test/**/*.js",
"scripts": {
"setup": "scripts/setup.js",
"myRegularTask": "scripts/myRegularTask.js"
}
}
testCollection
所以我认为它应该做的是,一旦我安装了我的 foxx 服务,它就会注册一个每 5 秒执行一次的常规作业(并在我的 foxx 服务中插入一个文档)。它实际上有时会这样做。然而,大多数时候,不管我等多久,什么都没有发生。
这就是这篇文章的问题:为什么上面代码的行为对我来说是不确定的?我做错了什么让它总是工作?
谢谢赛博