https://github.com/aneldev/dyna-process-manager
https://github.com/aneldev/dyna-process-manager
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/aneldev/dyna-process-manager
- Owner: aneldev
- License: mit
- Created: 2018-10-02T09:03:29.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T16:47:53.000Z (over 3 years ago)
- Last Synced: 2025-06-06T04:16:26.256Z (about 1 year ago)
- Language: TypeScript
- Size: 3.81 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DynaProcessManager(config?: IDynaProcessManagerConfig)
```
interface IDynaProcessManagerConfig {
loggerSettings?: IDynaLoggerConfig;
}
```
[IDynaLoggerConfig](https://github.com/aneldev/dyna-logger/blob/master/src/index.ts#L3)
## public addProcess(processSetup: IDynaProcessConfig): DynaProcess
```
interface IDynaProcessConfig {
name: string; // The name if this process for console messages and stats
cwd: string; // Current working directory of the child process
command: string; // Full executable filename
args?: string | string[]; // Arguments
env?: any; // Environment key-value pairs
guard?: IDynaProcessConfigGuard;
forceTerminationSignal?: boolean; // default: false, Force passing the termination signal to child process
loggerSettings?: IDynaLoggerSettings;
consolePrefixProcessName?: boolean; // default: true
onClose?: (exitCode: number, signal: string) => void;
}
interface IDynaProcessConfigGuard {
restartAfterMs: number;
}
```
`addProcess` returns the insatnce of the `DynaProcess` where this has the `id` property (string). Use this `id` in the below methods.
## public removeProcess(id: string): Promise
## public getProcess(id: string): DynaProcess
## public get count(): number
## public stopAll(): Promise
# DynaProcess
You don't instantiate this, this is the result of the `addProcess`.
You get this from `getProcess` by its `id`.
## logger: DynaLogger
## get id(): string
## public active: boolean
## get info()
Returns startAt, stoppedAt and stopCalled
## start(): Promise
Returns true if started and false if it was already started.
The process is started automatically on `addProcess`.
You can use this if you to re-start it later.
## stop(signal?: string): void
# Pass object to new instances
Classes needs at list an config/opt/settings object to start and work.
Since this will start in new process, you can pass only string arguments.
There two utils provided from the library that can help you to serialize/deserialize an object.
## encodeDataToString = (data: TData): string
Converts an object to string.
Pass this string as argument to the process and read it from the `process.argv`.
Then `decodeStringToData`.
## decodeStringToData = (encoded: string): TData
Converts a string to object.