Meteor의 백그라운드 작업
나는 노동자 풀과 함께 백그라운드 작업을 구현하는 방법이 있는지 궁금합니다. 방향을 보여 주시겠습니까? 나는 이것에 대한 패키지를 작성할 생각입니까?
2019 업데이트
패키지 작성을 고려하기 전에 먼저 필요한 작업을 수행하는 기존 패키지가 있는지 확인하십시오. Meteor 세계에서 이것은 Atmosphere에서 "job / queue / task / worker management / scheduling"패키지를 찾은 다음 npm에서 동일한 검색어를 찾는 것을 의미합니다. 또한 요구 사항을보다 정확하게 정의해야합니다.
- 지속성을 원합니까, 아니면 메모리 내 솔루션이 작동합니까?
- 작업을 다른 컴퓨터에 배포하고 싶습니까?
유성 별
- job-collection- 신뢰할 수 있지만 (2014 년에 시작시 프로덕션에서 사용함) 현재 유지 관리 모드입니다. 영구 작업이 어디에서나 실행되도록 예약 할 수 있습니다 (서버, 클라이언트).
- SteveJobs- 강력한 Meteor 도구 의 저자 인 Max Savin이 적극적으로 관리
- littledata : synced-cron- "Meteor를위한 간단한 cron 시스템. 여러 프로세스 간의 동기화 작업을 지원합니다."
버려진 패키지 :
- artwells : queue- 우선 순위, 스케줄링, 로깅, 다시 큐잉. MongoDB가 지원하는 대기열. 마지막 코드 커밋 : 2015-10 월
- 슈퍼 기본 크론 패키지 : easycron . 마지막 업데이트 : 2015 년 12 월.
- Differential : workers-헤드리스 작업자 유성 프로세스를 생성하여 비동기 작업을 수행합니다. 마지막 코드 커밋 : 2015 년 1 월
- cron ( 2015 년 이후 )
- PowerQueue - 2014 년부터 중단 되었습니다 . 대기열 비동기 작업, 리소스 사용량 제한, 재시도 실패. 하위 대기열을 지원합니다. 예약이 없습니다 . 테스트는 없지만 멋진 데모 . 재귀 호출 을 사용하기 때문에 오랫동안 실행하기에 적합하지 않습니다 .
Npm 패키지
Meteor는 몇 년 동안 npm 패키지를 직접 사용할 수 있었으므로이 질문 은 NPM에서 작업 / 노동자 / 대기열 관리 패키지 를 찾는 것과 같습니다 . 지속성에 신경 쓰지 않는다면 :
- 비동기은 "70 보통"기능적 "용의자를 포함 함수 (제공
map
,reduce
,filter
,each
...)뿐만 아니라 비동기 제어 플로우에 대한 일반적인 패턴 (parallel
,series
,waterfall
...)"를 - d3-queue- 미니멀리즘, D3 작성자 Mike Bostock 작성
지속성을 원한다면 Meteor는 이미 MongoDB를 사용하고 있기 때문에 MongoDb에 대한 지속성이있는 작업 스케줄링 패키지를 사용하는 것이 유리할 수 있습니다. 가장 강력하고 인기있는 것은 Agenda 이지만 안타깝게도 몇 달 동안 유지되지 않았으며 상당한 문제 백 로그가 있습니다 .
redis 가 지원하는 종속성 을 프로젝트 에 추가하려는 경우 더 많은 선택 사항이 있습니다.
- bull -Redis가 지원하는 Node를위한 가장 완전한 기능을 갖춘 작업 대기열 솔루션
- 꿀벌 -간단하고 빠르며 견고합니다. Bull이 보여주는 메모리 누수를 겪지 않습니다.
- Kue- 노드 우선 작업 대기열
MongoDB와 마찬가지로 Redis는 Redis Sentinel을 통해 고 가용성을 제공 할 수 있으며 여러 작업자 머신에 작업을 배포하려는 경우 모든 작업을 동일한 Redis 서버에 지정할 수 있습니다 .
특정 간격 또는 날짜에 작업을 예약하는 데 사용할 수있는 Cron 작업을 기반으로하는 패키지가 있습니다. 패키지는 다음과 같습니다 : https://atmosphere.meteor.com/package/cron
해당 패키지의 소스를 살펴보면 다음을 사용하고 있음을 알 수 있습니다.
Meteor.setInterval( ... , delay );
따라서 작업을 데이터베이스에 저장 한 다음 시작하는 동안 간격으로로드하면 아마도 올바른 길을 가고있을 것입니다.
Meteor에 특정한 것을 찾고 있다면 Steve Jobs라는 새로운 패키지를 공유하게되어 기쁩니다. 메서드를 호출하는 것만 큼 쉽게 백그라운드 작업을 실행할 수 있습니다.
작업을 한 번만 실행하고 실패한 작업을 재 시도하는 등 예상 할 수있는 모든 표준 기능이 있습니다. GitHub에서 자세히 알아볼 수 있습니다.
http://github.com/msavin/stevejobs
적절한 지원이 로드맵에 있다고 생각하지만 그 동안 .NET을 통해 해키 방식으로 진행할 수있었습니다 setInterval
. cron-tick 패키지를 참조하십시오 .
참고 URL : https://stackoverflow.com/questions/11703010/background-tasks-in-meteor
'Development Tip' 카테고리의 다른 글
실시간 웹 애플리케이션을위한 짧은 폴링과 긴 폴링? (0) | 2020.12.11 |
---|---|
오류 : "지정된 LINQ 식에 다른 컨텍스트와 연결된 쿼리에 대한 참조가 포함되어 있습니다." (0) | 2020.12.11 |
HTML5에서 확인란을 선택하고 선택 취소하는 올바른 방법은 무엇입니까? (0) | 2020.12.11 |
ASCII "이미지"에서 "수직"정규식 일치 (0) | 2020.12.11 |
Xcode 5/6 : View Debugging이 항상 회색으로 표시됩니까? (0) | 2020.12.11 |