7

Suppose I have 2 script, father.ts and child.ts, how do I spawn child.ts from father.ts and periodically send message from father.ts to child.ts ?

Wong Jia Hau
  • 2,639
  • 2
  • 18
  • 30

2 Answers2

8

You have to use the Worker API

father.ts

const worker = new Worker("./child.ts", { type: "module", deno: true });
worker.postMessage({ filename: "./log.txt" });

child.ts

self.onmessage = async (e) => {
  const { filename } = e.data;
  const text = await Deno.readTextFile(filename);
  console.log(text);
  self.close();
};

You can send messages using .postMessage

Community
  • 1
  • 1
Marcos Casagrande
  • 37,983
  • 8
  • 84
  • 98
0

You can use child processes. Here is an example: proc with PushIterable

This will let you send and receive multiple commands from non-Deno child processes asynchronously, as well as Deno child processes.

Be careful as this requires --allow-run to work, and this almost always breaks out of the sandbox, if you care about that.

j50n
  • 1