@moxb/shards-meteor-process-manager-core
TypeScript icon, indicating that this package has built-in type declarations

0.4.7 • Public • Published

Shards - Meteor Process Manager: core

This family of packages provides a framework for Meteor projects that allows running tasks in the background.

Overview

Task Definition

Tasks are described using a specific interface. Basic example:

const processCountSheep: ProcessDefinition = {
  processId: 'count-sheep',
  name: "Count sheep",
  detailLevel: 1,
  execute: () => {
      // 1
      sleep(1);
      // 2
      sleep(2);
      // 3
  }
};

See ProcessDefinition for more.

Process Context

When a process is executed, it gets ProcessContext instance, which provides some APIs for communicating with the process manager.

function someProcess(context: ProcessContext<any>) {
    sleep(1);
    context.reportProgress("One", 0.1);
    sleep(1);
    context.reportProgress("Two", 0.2);
    sleep(1);
}

See ProcessContext for more.

Recursive launching of processes

A process can also request the launching of another process. Multiple modes of interactions are supported.

TODO

Process Controller

The process controller is a singleton object, living on the server side. It's responsible for controlling what happens around the processes.

The application code running on the server side can talk to this controller:

getProcessController().launchProcess("basic", "count-sheep");
getProcessController().stopProcess("basic", "count-sheep");

See ProcessController for more.

The application code on the client side can talk to the process controller using a set of Meteor methods:

launchProcessMethod.call({ scopeId: "basic", processId: "count-sheep" });
stopProcessMethod.call({ scopeId: "basic", processId: "count-sheep" });

Examining process status

We store the status of each of the defined processes.

console.log(getProcessController().getProcess("basic", "count-sheep");

See ProcessStatus for the exact details.

As far as the client is concerned, publicationBackgroundProcesses is a Meteor publication carries all process status info from the server to the client.

See also

Readme

Keywords

Package Sidebar

Install

npm i @moxb/shards-meteor-process-manager-core

Weekly Downloads

20

Version

0.4.7

License

MIT

Unpacked Size

18 kB

Total Files

25

Last publish

Collaborators

  • scharf
  • herndl
  • csillag
  • gerujv