arangodb에서 큐를 통해 작업을 실행하는 방법

Deepak Agarwal

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

웹 서버를 통해 PHP에서 예약 된 작업을 실행하는 방법

분류에서Dev

VBA를 통해 수행 된 작업을 실행 취소하는 방법

분류에서Dev

이벤트를 통해 작업 실행을 종료하는 방법

분류에서Dev

powers 셸 명령을 통해 작업 스케줄러에서 예약 된 작업을 실행하는 방법

분류에서Dev

Spring을 통해 Rabbit MQ 큐의 뒷면에 메시지를 다시 큐에 넣는 방법

분류에서Dev

원격 호스트의 Docker 컨테이너 내에서 ansible 작업을 실행하기 위해 연결하는 방법 (ssh를 통해)

분류에서Dev

cPanel을 통해 1 시간마다 Cron 작업을 사용하여 컨트롤러에서 Codeigniter PHP 함수를 실행하는 방법

분류에서Dev

Buildship을 통해 작업을 실행하기 위해 Gradle 명령 매개 변수를 전달하는 방법

분류에서Dev

PHP로 서버를 통해 cronjob 실행을 테스트하는 방법

분류에서Dev

Git Bash 및 Python을 통해 작업 디렉토리에서 파일을 실행하는 방법

분류에서Dev

Windows cmd를 통해 파이썬 스크립트를 실행하고 파이썬 작업과 cmd에 플롯을 표시하는 방법이 있습니까?

분류에서Dev

bash 스크립트를 통해 특정 명령을 실행하고 시작에 추가하는 방법

분류에서Dev

nginx가 작동을 멈추지 않도록 443을 통해 nodejs 서버를 실행하는 방법

분류에서Dev

': app : compileFlutterBuildDebug'작업에 대한 실행 실패를 해결하는 방법

분류에서Dev

PuTTY에서 cmd를 통해 명령을 실행하는 동안 오류를 무시 / 억제하는 방법

분류에서Dev

Mac에서 터미널 명령을 실행하고 Java를 통해 출력을 인쇄하는 방법

분류에서Dev

R에서 여러 하위 목록을 통해 함수를 실행하는 방법은 무엇입니까?

분류에서Dev

Tor를 통해 프로그램을 실행하는 방법

분류에서Dev

cmd를 통해 powershell 명령을 실행하는 방법.

분류에서Dev

Rails 4에서 URL을 통해 클래스 메서드를 실행하는 방법

분류에서Dev

다른 서버에서 작업을 실행하는 '작업자'서버를 설정하는 방법

분류에서Dev

Mercurial에서 업데이트를 수행 할 때 각 변경 집합에 대해 작업을 실행하는 방법은 무엇입니까?

분류에서Dev

간단한 예제를 통해 Firebird에서 실행 블록을 사용하는 방법 배우기

분류에서Dev

Qt를 통해 리눅스에서 "내보내기"명령을 실행하는 방법

분류에서Dev

쉘 스크립트를 통해 이미 열린 터미널에서 명령을 실행하는 방법

분류에서Dev

cron을 통해 홈 디렉토리 외부에서 스크립트를 실행하는 방법

분류에서Dev

cron을 통해 홈 디렉토리 외부에서 스크립트를 실행하는 방법

분류에서Dev

다른 디렉토리에서 Java를 통해 jar 파일을 실행하는 방법

분류에서Dev

Java를 통해 PowerShell_ISE.exe에서 .ps1 파일을 실행하는 방법

Related 관련 기사

  1. 1

    웹 서버를 통해 PHP에서 예약 된 작업을 실행하는 방법

  2. 2

    VBA를 통해 수행 된 작업을 실행 취소하는 방법

  3. 3

    이벤트를 통해 작업 실행을 종료하는 방법

  4. 4

    powers 셸 명령을 통해 작업 스케줄러에서 예약 된 작업을 실행하는 방법

  5. 5

    Spring을 통해 Rabbit MQ 큐의 뒷면에 메시지를 다시 큐에 넣는 방법

  6. 6

    원격 호스트의 Docker 컨테이너 내에서 ansible 작업을 실행하기 위해 연결하는 방법 (ssh를 통해)

  7. 7

    cPanel을 통해 1 시간마다 Cron 작업을 사용하여 컨트롤러에서 Codeigniter PHP 함수를 실행하는 방법

  8. 8

    Buildship을 통해 작업을 실행하기 위해 Gradle 명령 매개 변수를 전달하는 방법

  9. 9

    PHP로 서버를 통해 cronjob 실행을 테스트하는 방법

  10. 10

    Git Bash 및 Python을 통해 작업 디렉토리에서 파일을 실행하는 방법

  11. 11

    Windows cmd를 통해 파이썬 스크립트를 실행하고 파이썬 작업과 cmd에 플롯을 표시하는 방법이 있습니까?

  12. 12

    bash 스크립트를 통해 특정 명령을 실행하고 시작에 추가하는 방법

  13. 13

    nginx가 작동을 멈추지 않도록 443을 통해 nodejs 서버를 실행하는 방법

  14. 14

    ': app : compileFlutterBuildDebug'작업에 대한 실행 실패를 해결하는 방법

  15. 15

    PuTTY에서 cmd를 통해 명령을 실행하는 동안 오류를 무시 / 억제하는 방법

  16. 16

    Mac에서 터미널 명령을 실행하고 Java를 통해 출력을 인쇄하는 방법

  17. 17

    R에서 여러 하위 목록을 통해 함수를 실행하는 방법은 무엇입니까?

  18. 18

    Tor를 통해 프로그램을 실행하는 방법

  19. 19

    cmd를 통해 powershell 명령을 실행하는 방법.

  20. 20

    Rails 4에서 URL을 통해 클래스 메서드를 실행하는 방법

  21. 21

    다른 서버에서 작업을 실행하는 '작업자'서버를 설정하는 방법

  22. 22

    Mercurial에서 업데이트를 수행 할 때 각 변경 집합에 대해 작업을 실행하는 방법은 무엇입니까?

  23. 23

    간단한 예제를 통해 Firebird에서 실행 블록을 사용하는 방법 배우기

  24. 24

    Qt를 통해 리눅스에서 "내보내기"명령을 실행하는 방법

  25. 25

    쉘 스크립트를 통해 이미 열린 터미널에서 명령을 실행하는 방법

  26. 26

    cron을 통해 홈 디렉토리 외부에서 스크립트를 실행하는 방법

  27. 27

    cron을 통해 홈 디렉토리 외부에서 스크립트를 실행하는 방법

  28. 28

    다른 디렉토리에서 Java를 통해 jar 파일을 실행하는 방법

  29. 29

    Java를 통해 PowerShell_ISE.exe에서 .ps1 파일을 실행하는 방법

뜨겁다태그

보관