Development Tip

Meteor의 백그라운드 작업

yourdevel 2020. 12. 11. 20:24
반응형

Meteor의 백그라운드 작업


나는 노동자 풀과 함께 백그라운드 작업을 구현하는 방법이 있는지 궁금합니다. 방향을 보여 주시겠습니까? 나는 이것에 대한 패키지를 작성할 생각입니까?


2019 업데이트

패키지 작성을 고려하기 전에 먼저 필요한 작업을 수행하는 기존 패키지가 있는지 확인하십시오. Meteor 세계에서 이것은 Atmosphere에서 "job / queue / task / worker management / scheduling"패키지를 찾은 다음 npm에서 동일한 검색어를 찾는 것을 의미합니다. 또한 요구 사항을보다 정확하게 정의해야합니다.

  • 지속성을 원합니까, 아니면 메모리 내 솔루션이 작동합니까?
  • 작업을 다른 컴퓨터에 배포하고 싶습니까?

유성 별

  • job-collection- 신뢰할 수 있지만 (2014 년에 시작시 프로덕션에서 사용함) 현재 유지 관리 모드입니다. 영구 작업이 어디에서나 실행되도록 예약 할 수 있습니다 (서버, 클라이언트).
  • SteveJobs- 강력한 Meteor 도구 의 저자 인 Max Savin이 적극적으로 관리
  • littledata : synced-cron- "Meteor를위한 간단한 cron 시스템. 여러 프로세스 간의 동기화 작업을 지원합니다."

버려진 패키지 :

Npm 패키지

Meteor는 몇 년 동안 npm 패키지를 직접 사용할 수 있었으므로이 질문 은 NPM에서 작업 / 노동자 / 대기열 관리 패키지 를 찾는 것과 같습니다 . 지속성에 신경 쓰지 않는다면 :

  • 비동기은 "70 보통"기능적 "용의자를 포함 함수 (제공 map, reduce, filter, each...)뿐만 아니라 비동기 제어 플로우에 대한 일반적인 패턴 ( parallel, series, waterfall...)"를
  • d3-queue- 미니멀리즘, D3 작성자 Mike Bostock 작성

지속성을 원한다면 Meteor는 이미 MongoDB를 사용하고 있기 때문에 MongoDb에 대한 지속성이있는 작업 스케줄링 패키지를 사용하는 것이 유리할 수 있습니다. 가장 강력하고 인기있는 것은 Agenda 이지만 안타깝게도 몇 달 동안 유지되지 않았으며 상당한 문제 백 로그가 있습니다 .

redis지원하는 종속성 을 프로젝트 에 추가하려는 경우 더 많은 선택 사항이 있습니다.

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

반응형