ArangoDb 2.5.7에서 ArangoDb 3.1.7로 이동하고 있습니다. 나는 잡스를 제외하고 모든 것이 작동하도록 관리했습니다. 문서를 봤는데이를 위해 별도의 서비스를 만들어야하는 경우 이해가 안 되나요?
그래서 저는 foxx 애플리케이션 myApp이 있습니다.
manifest.json
{
"name": "myApp",
"version": "0.0.1",
"author": "Deepak",
"files":
{
"/static": "static"
},
"engines":
{
"arangodb": "^3.1.7"
},
"scripts":
{
"setup": "./scripts/setup.js",
"myJob": "./scripts/myJob.js"
},
"main": "index.js"
}
index.js
'use strict';
module.context.use('/one', require('./app'));
app.js
const createRouter = require('org/arangodb/foxx/router');
const controller = createRouter();
module.exports = controller;
const queues = require('@arangodb/foxx/queues');
queue = queues.create('myQueue', 2);
queue.push({mount:"/myJob", name:"myJob"}, {"a":4}, {"allowUnknown": true});
myJob.js
const argv = module.context.argv;
var obj = argv[0];
console.log('obj:'+obj);
다음과 같은 오류가 발생합니다.
작업 실패 : ArangoError : 서비스를 찾을 수 없습니다. 마운트 경로 : "/ myJob".
myJob을 외부 서비스로 확장해야하는지 잘 모르겠습니다. 도와주세요. 나는 그것을하는 방법에 대한 완전한 예를 보지 못합니다.
질문에 답하려면 :
작업 스크립트를 새 서비스로 추출 할 필요가 없습니다. 을 사용하여 현재 서비스의 마운트 지점을 지정할 수 있습니다 module.context.mount
.
https://docs.arangodb.com/3.1/Manual/Foxx/Context.html 문서에서 컨텍스트 객체에 대한 자세한 정보를 찾을 수 있습니다.
그건 그렇고, 마운트 타임에 임의로 일자리를 만드는 것은 좋은 생각이 아닐 것입니다. 대기열의 일반적인 사용 사례는 들어오는 요청의 부작용으로 경로 처리기에서 작업을 만드는 것입니다 (예 : 가입시 환영 이메일 발송).
마운트 할 때 (예 : 메인 파일 또는 필요한 파일) 작업을 생성하면 파일이 실행될 때마다 작업이 생성되며 각 Foxx 스레드에 대해 적어도 한 번 생성됩니다 (기본적으로 ArangoDB는 여러 Foxx를 사용합니다. 병렬 요청을 처리하기위한 스레드) 또는 개발 모드가 요청 당 한 번 활성화 된 경우 (!).
마찬가지로 설정 스크립트에서 작업을 생성하면 설정 스크립트가 실행될 때마다 생성되지만 매번 하나의 스레드에서만 발생합니다 (개발 모드가 활성화 된 경우 요청 당 한 번).
예를 들어 서비스와 함께 유지되는주기적인 작업이 필요한 경우 고유 한 대기열에 넣고 이미 존재하는지 확인한 후 설정 스크립트에서만 생성해야합니다.
대기열 API의 변경 사항 :
대기열 API는 작업이 대기열에 푸시 된 후 ArangoDB 데몬이 다시 시작될 때 보류중인 작업이 적절하게 다시 예약되지 않는 오래된 API의 심각한 문제로 인해 2.6에서 변경되었습니다.
특히 ArangoDB 2.6은 소위 스크립트 기반 (함수 기반이 아닌) 작업 유형을 도입했습니다. https://docs.arangodb.com/3.1/Manual/ReleaseNotes/UpgradingChanges26.html#foxx-queues
이전 함수 기반 작업 유형에 대한 지원은 ArangoDB 2.7에서 삭제되었으며 쿡북 레시피가 스크립트 기반 작업 유형을 반영하도록 업데이트되었습니다. https://docs.arangodb.com/2.8/cookbook/FoxxQueues.html
새 대기열에 대한 자세한 설명은 https://docs.arangodb.com/3.1/Manual/Foxx/Scripts.html 문서에서 찾을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다